在MVC中验证

时间:2013-02-22 06:43:44

标签: c# .net asp.net-mvc validation

您好,我是MVC的初学者,我已经编写了验证代码,但它没有用,任何人都可以帮助我。 这是型号代码:

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

以下是查看代码:

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

提前感谢您的帮助

3 个答案:

答案 0 :(得分:0)

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

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)
只有一个字段具有Required属性和自定义错误消息(模型LocalValidationTestModel)。在视图中有两种显示错误的方法:
@ Html.ValidationSummary()和@ Html.ValidationMessageFor(x => x.TestField)

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

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

答案 1 :(得分:0)

我认为你应该引用几个jquery文件。 然后在行动中,你必须做一些事情,比如:

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

并且操作必须添加属性为[HttpPost]

答案 2 :(得分:0)

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

Enable Client side Validation

Enable Client side Validation-2

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