对模型中的2个不同属性进行相同的远程validation
我在模型中有2个属性contractor1和contractor2,如何对它们使用单个远程validation
[Display(Name ="Contractor 1:")] [Remote("ValidateContractor", "Contracts")] public string Cntrctr1 {get; set;} [Display(Name = "Contractor 2:")] [Remote("ValidateContractor", "Contracts")]`enter code here` public string Cntrctr2 {get; set;}
Controller中的远程validationfunction
public JsonResult ValidateContractor1(string Cntrctr) { var valid = Validations.ValidateContractor(Cntrctr); if (!valid) {return Json("Enter correct contractor", JsonRequestBehavior.AllowGet);} else{return Json(true, JsonRequestBehavior.AllowGet);} } public static bool ValidateContractor(string CntrctrNM) { bool valid; using (var entities = new CAATS_Entities()) { var result = (from t in entities.PS_VENDOR_V where (t.VNDR_1_NM).Equals(CntrctrNM) select t).FirstOrDefault(); if (result != null) { valid = true; } else { valid = false; } } return valid; }
这不起作用。 你能帮我解决这个问题吗?
调用远程validation时,查询字符串键是字段的名称,例如在您的情况下/Contracts/ValidateContractor1?Cntrctr1=foo
。 您需要一个更动态的解决方案。
您可以这样做的一种方法是在ValidateContractor1
没有任何参数,而只是获取第一个查询字符串值。 这没有经过测试但应该适合您:
public JsonResult ValidateContractor1() { // gets the name of the property being validated, eg "Cntrctr1" string fieldName = Request.QueryString.Keys[0]; // gets the value to validate string Cntrctr = Request.QueryString[fieldName]; // carry on as before var valid = Validations.ValidateContractor(Cntrctr); if (!valid) {return Json("Enter correct contractor", JsonRequestBehavior.AllowGet);} else{return Json(true, JsonRequestBehavior.AllowGet);} }
如果你发现他的方法不起作用,加入Rhumborls答案可能是因为你正在使用表格; 如果是这种情况,则需要使用Form属性而不是QueryString。
上述就是C#学习教程:对模型中的2个不同属性进行相同的远程validation分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)
public JsonResult ValidateContractor() { // gets the name of the property being validated, eg "Cntrctr1" string fieldName = Request.Form.Keys[0]; // gets the value to validate string Cntrctr = Request.Form[fieldName]; // carry on as before var valid = Validations.ValidateContractor(Cntrctr); if (!valid) {return Json("Enter correct contractor", JsonRequestBehavior.AllowGet);} else{return Json(true, JsonRequestBehavior.AllowGet);} }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。
如若转载,请注明出处:https://www.ctvol.com/cdevelopment/961180.html