3

我有一个创建用户视图(操作),除了某些字段类型、日期、电子邮件地址等的客户端验证之外,我想通过调用几个服务器控制器操作来检查一对例如电子邮件地址和用户名是否是唯一的。

我本来认为最好“挂钩”到现有的 MVC 验证机制中来调用这些 ajax 函数。因此,当表单验证发生时,它会调用我的 ajax 验证器,并在 modelstate.isvalid 中回顾性地反映这一点,并且任何错误都会显示在默认的 html.validation 帮助器中。

我不确定这是否可行,或者我是否需要单独处理自己的验证?目前我已经创建了几个 jquery 函数,它们调用几个控制器操作并在我添加的几个跨度中显示用户名和电子邮件地址的有效性状态。

MVC 的最佳模式是什么?我考虑了将上述每个字段包装在单独的 @Ajax.BeginForm(

4

2 回答 2

4

Asp.Net MVC 中内置了远程验证。

在模型中:

public class CreateUserModel 
{
    [Remote("IsNameAvailable", "Validation")]
    public override string UserName { get; set; }
}

在控制器中:

public class ValidationController : Controller 
{
    public JsonResult IsNameAvailable(string Username) 
    {
        ... Do some checks
        return Json({some validation message here}, JsonRequestBehavior.AllowGet);
    }

}
于 2012-10-09T22:35:47.043 回答
2

您可以使用远程验证。阅读这篇文章: http: //msdn.microsoft.com/en-us/library/gg508808 (v=vs.98).aspx

于 2012-10-09T22:42:18.533 回答