2

いくつかの[必須]フィールドを持つ.NetMVC4モデル/ビューがあり、そのうちの1つはドロップダウンリスト「Content_CreatedBy」[以下の最初のコードブロック]から選択されます。

クライアント側の検証は、DDLを除くすべてのフィールドで発生します[ただし、サーバー側の検証ではDDLへの入力は許可されません]。DDLテキストとその数値を検証しようとしましたが、クライアント側で起動します。

誰かが私が間違っていることを見ることができますか?

ありがとう
モデル

[Required]
[Display(Name = "Author")]
[ForeignKey("ContentContrib")]
[Range(1, 99, ErrorMessage = "Author field is required.")]
public virtual int Content_CreatedBy { get; set; }

[Required]
[Display(Name = "Date")]
public virtual DateTime Content_CreatedDate { get; set; }

[Required]
[DataType(DataType.MultilineText)]
[Display(Name = "Source / Notes ")]
[StringLength(10, MinimumLength = 3)]
public virtual string Content_Sources { get; set; }

[Required]
[Display(Name = "Keywords")]
[StringLength(50, MinimumLength = 3)]
public virtual string Content_KeyWords { get; set; }

見る

<div class="editor-label">
@Html.LabelFor(model => model.Content_CreatedBy, new { @class="whitelabel"})
</div>

<div class="editor-field">

@Html.DropDownList("Content_CreatedBy", String.Empty)
@Html.EditorFor(model => model.Content_CreatedBy)
@Html.ValidationMessageFor(model => model.Content_CreatedBy)
</div>
4

3 に答える 3

4

DropDownListFor次のようにも使用する必要がありYourSelectListます。

<div class="editor-field">

   @Html.DropDownListFor(model => model.Content_CreatedBy, 
                                  YourSelectList,
                                 "[ -- Please Select --]") 
   @Html.ValidationMessageFor(model => model.Content_CreatedBy)

</div>
于 2012-11-13T10:37:02.883 に答える
2

null許容型にしContent_CreatedByます。

[Required]
[Display(Name = "Author")]
[ForeignKey("ContentContrib")]
[Range(1, 99, ErrorMessage = "Author field is required.")]
public virtual int? Content_CreatedBy { get; set; }
于 2012-11-13T10:57:49.953 に答える
0

プロパティは整数型であるため、一致するバインダーが見つからない場合は常に0に初期化されます。したがって、クライアントに無効化を与えることはありません。

回避策、タイプを文字列に変更し、このようなものも使用します。

[Required]
[Display(Name = "Author")]
[ForeignKey("ContentContrib")]
[Range(1, 99, ErrorMessage = "Author field is required.")]
public virtual string Content_CreatedBy { get; set; }



Html.DropDownListFor(model => model.Content_CreatedBy, 
                              IEnumerable<object>,
                             " -- Please Select --") 
于 2012-11-13T18:21:07.667 に答える