0

我有这个 viewModel 类:

[Required]
     [StringLength(50)]
     public string Name { get; set; }

     [Required]
     [EmailAddress]
     public string Email { get; set; }

     [Required]
     public string MessageType { get; set; }

    [Required]
    [StringLength(300)]
    [DataType(DataType.MultilineText)]
    public string Message { get; set; }

我的视图中有这段代码:

@model Kekanto.ViewModels.DoubtViewModel


@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

<br />
@Html.LabelFor(model=>model.Name)
@Html.EditorFor(model=>model.Name)<br />
@Html.ValidationMessageFor(model => model.Name)

@Html.LabelFor(model=>model.Email)
@Html.EditorFor(model=>model.Email)<br />
 @Html.ValidationMessageFor(model => model.Email)

@Html.Label("MessageType") 
<select  name="MessageType" id="MessageType">
<option ></option>
<option >Sugestion</option>
<option >Question</option>
<option >Complaint</option>
</select>
 @Html.ValidationMessageFor(model => model.MessageType)

<br /><br />

@Html.LabelFor(model=>model.Message)
@Html.EditorFor(model=>model.Message)
 @Html.ValidationMessageFor(model => model.Message)


     <input type="submit" value="Send Message" />

}

尽管某些属性是必需的,但我没有得到验证...我可以发送空表单并且我没有收到消息“此字段是必需的”...。

4

2 回答 2

1

您是使用客户端验证还是仅使用服务器端验证。

为了启动服务器端,您需要检查ModelState.IsValid您的 POST

于 2013-04-01T16:41:16.640 回答
1

看看这里。您可能缺少对正确 javascript 文件的一些引用。

于 2013-04-01T16:43:32.633 回答