在MVC 4上创建一个必需的属性

时间:2017-01-20 11:08:11

标签: asp.net-mvc data-annotations

我有一个Model类,其中我做了类似的事情:

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

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

当我基于此类创建视图并单击没有任何数据的提交按钮时,它不会显示该必需属性的验证消息。为什么?

2 个答案:

答案 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)