我的处方集中没有得到验证.... asp.net mvc EF5

时间:2013-04-01 16:35:30

标签: c# asp.net-mvc entity-framework

我有这个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" />

}

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

看看here。您可能会遗漏一些对正确javascript文件的引用。