我有这个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" />
}
尽管有些属性是必需的,但我没有得到验证......我可以发送空表单而且我没有收到消息“此字段是必需的”....
答案 0 :(得分:1)
您使用的是客户端验证还是仅使用服务器端验证。
要启动服务器端,您需要检查POST上的ModelState.IsValid
答案 1 :(得分:1)
看看here。您可能会遗漏一些对正确javascript文件的引用。