我有一个创建用户视图(操作),除了某些字段类型,日期,电子邮件地址等的客户端验证之外,我想通过调用几个服务器控制选项来检查一对例如emailaddress和username是唯一的。
我原本认为最好“挂钩”现有的MVC验证机制来调用这些ajax函数。因此,当表单验证发生时,它会调用我的ajax验证器,并在modelstate.isvalid中重新反映这一点,并且在默认的html.validation帮助程序中显示任何错误。
我不确定这是否可行,或者我是否需要单独处理我自己的验证?目前我已经创建了几个jquery函数,它们调用了几个控制器动作,并在我添加的几个跨度中显示了用户名和emailaddress的有效状态。
MVC的最佳模式是什么?我想到了在一个单独的@ Ajax.BeginForm中包装上述每个字段的可能方法(
答案 0 :(得分: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);
}
}
答案 1 :(得分:2)
您可以使用远程验证。 阅读这篇文章: http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspx