我想要能够基于什么控制器启动一个视图被调用的一些验证函数…我将在ViewState或某些东西设置一个变量,这将帮助我知道这个视图被调用的控制器.
换句话说,如果某个变量被设置,我想要验证是有必要的…这是我将MVC2当我将Jquery放入我的代码中时使用的方式…
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并调用远程函数来确保该值是唯一的.
我不想在所有情况下这样做.
从目前为止所有的阅读中,没有明确的方法来完成这个使用unobrtusive ajax?我错了,有办法可以做到吗?如果没有,我该怎么把普通的老jquery验证放到我的代码中?
解决方法
ASP.NET MVC 3使用jquery不显眼的验证来执行客户端验证.所以你可以写一个
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中使用相应的包.