我希望能够根据调用视图的控制器启动一些验证功能......我将在ViewState中设置一个变量,这将有助于我知道调用该视图的控制器。
换句话说,如果设置了某个变量,我希望验证是必需的...当我将Jquery放入我的代码时,我在MVC2中的使用方式......
HospitalFinNumber: {
required: function (element) {
debugger;
return '@isFlagSet' != 'True';
},
minlength: 6,
remote: function () {
//debugger;
return {
url: '@Url.Action("ValidateHosFin", "EditEncounter")',
data: { hospitalFin: $('#HospitalFinNumber').val(), encflag: '@encflag' }
};
}
}
你看我在那里做什么。如果设置了某个变量,则只需要验证...在这种情况下,变量isFlagSet ...然后我将设置min Length并调用远程函数以确保该值是唯一的。
我不想在所有情况下都这样做。
到目前为止,我所读过的所有内容都没有明确的方法可以使用无效的ajax来实现这一目标?我错了,有没有办法可以做到这一点?如果没有,我怎样才能将常规的旧jquery验证放入我的代码中?
答案 0 :(得分:11)
ASP.NET MVC 3使用jquery unobtrusive验证来执行客户端验证。因此,您可以编写custom RequiredIf
验证属性,也可以使用Mvc Foolproof Validation中提供的属性,然后:
public class MyViewModel
{
[RequiredIf("IsFlagSet", true)]
[Remote("ValidateHosFin", "EditEncounter")]
[MinLength(6)]
public string HospitalFinNumber { get; set; }
public bool IsFlagSet { get; set; }
public string EncFlag { get; set; }
}
然后剩下的就是包含jquery.validate.js
和jquery.validate.unobtrusive.js
脚本,或者使用ASP.NET MVC 4中包含它们的相应包。
答案 1 :(得分:3)