我想要能够基于什么控制器启动一个视图被调用的一些验证函数…我将在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中使用相应的包.