我有一个Model类,其中我做了类似的事情:
[Required]
public string Name {get; set;}
[Required]
public string Username {get; set;}
当我基于此类创建视图并单击没有任何数据的提交按钮时,它不会显示该必需属性的验证消息。为什么?
答案 0 :(得分:2)
你必须按照自己的期望做某些事情才能使它发挥作用。
首先,您必须确保您有提供与特定字段相关的错误消息,例如.cshtml
页面中的以下内容
@Html.EnableClientSideValiation()
@Html.EnableUnObstructiveJavascript()
// your other form elements
@Html.TextBoxFor(x=> x.Name)
@Html.ValidationMessageFor((x=> x.Name) // this will render validations if any
要在客户端进行触发器验证,您必须启用客户端验证并包含必需的JS文件
您还应该在服务器端进行适当的检查,在控制器的操作方法中,您应该有类似的东西......
[HttpPost]
public ActionResult Save(Your_Type model)
{
if(ModelState.IsValid()) // it will ensure all your annotations are passed
{
// save to server
// redirect to appropriate page
}
else
{
return View(model); // it will render same form again with already entered values and errors
}
}
答案 1 :(得分:1)
首先向我们展示您的观点,并使用验证消息html helper,如下所示。
make install
在你想要访问该消息的html帮助程序之后使用它。
<强>更新强>
您也可以像
一样自定义编辑模型@Html.ValidationMessageFor(m=>m.Name)