0

嗨,我是 MVC 的初学者,我已经编写了用于验证的代码,但它不起作用,任何人都可以帮助我。这是模型代码:

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

这是查看代码:

            @Html.TextBoxFor(m => m.ContactDetailSubSections[i].Name)
            @Html.ValidationMessageFor(m=>m.ContactDetailSubSections[i].Name)

在此先感谢您的帮助

4

3 回答 3

0

首先,您不需要任何用于 ASP.NET MVC 服务器验证的 JS 库。
其次,您应该在控制器中检查模型是否有效。

if (ModelState.IsValid) {
    //do something
}
return View(); //you can return view with optional parameters

此外,您应该检查您使用哪种发送数据的方法(POST 或 GET)并检查该方法是否在控制器中使用(发送数据始终使用 POST 方法)。

[HttpPost]
public ActionResult Index(YourModel model) {
    if (ModelState.IsValid) {
       //do something
    }
    return View();
}

这是适合您的项目(Validation.zip):http ://sdrv.ms/UP3DIE (我使用的是 VS 2012)
只有一个字段具有必填属性和自定义错误消息(模型 LocalValidationTestModel)。在视图中有两种显示错误的方法:
@Html.ValidationSummary() 和@Html.ValidationMessageFor(x => x.TestField)

所有的 JS 脚本和 CSS 样式都被剪掉了。

另外,你为什么使用数组?

于 2013-02-22T07:19:05.537 回答
0

我认为您应该参考 jquery 的几个文件。然后在行动中,你必须做一些事情,像这样:

if(ModelState.IsValid) { //TODO } return View();

并且动作必须添加属性是[HttpPost]

于 2013-02-22T07:38:57.970 回答
0

您可以使用 MVC 的启用客户端验证功能进行标准验证,这不需要控制器中的任何服务器端代码。

启用客户端验证

启用客户端 Validation-2

但是,您还必须在控制器级别检查 ModestState.IsValid() 以获得更好的安全性。

于 2013-02-22T08:30:04.333 回答