MVC4 - 如何验证下拉列表?

Gra*_*Roy 2 asp.net-mvc data-annotations

我有一个 .Net MVC4 模型/视图,其中包含许多[必需]字段,其中一个字段是通过下拉列表“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; }
Run Code Online (Sandbox Code Playgroud)

看法

<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>
Run Code Online (Sandbox Code Playgroud)

Kaf*_*Kaf 5

DropDownListFor您还需要使用YourSelectList如下;

<div class="editor-field">

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

</div>
Run Code Online (Sandbox Code Playgroud)