在Jquery中动态更改ASP.NET MVC验证

时间:2017-01-06 09:46:52

标签: jquery asp.net-mvc-5 asp.net-mvc-validation

在其中一个视图模型字段中,我在ASP.NET MVC数据注释属性中设置了最小长度。

[MinLength(5, ErrorMessage = "A minimum of 5 digits is required")]

基于下拉选择(具有2个值),MinLength需要更新为10. ClientSideValidation已启用,因此验证需要在将更改发布回控制器之前反映更改。

尝试使用基于下拉值的jQuery更改属性“data-val-minlength-min”,但它没有更改验证。

请提出任何建议。

2 个答案:

答案 0 :(得分:1)

尝试这种方法。这是为模型中的多个字段使用RemoteValidations。

[Remote("CheckForSelectedDropDownLengthMethod","ControllerName",AdditionalFields="SelectedDropDownName",ErrorMessage="The length should be be 10 characters.")]

public class ControllerName: Controller
{
    public JsonResult CheckForSelectedDropDownLengthMethod(Model yourmodel)
        {
              // write your logic to validate the logic here ,
              // Get the selected value of the dropdown, and the field where you want to check the length.
        }
}

请按照其中一个示例 https://www.codeproject.com/Tips/669824/Implementing-Remote-Validation-in-MVC

答案 1 :(得分:0)

@StephenMuecke给了我需要的解决方案。它可以根据需要在客户端和服务器端工作。我发布它作为答案,以便下一个人可以很容易地看到它。

创建自己的条件验证属性,以便同时获得客户端和服务器端验证 - The Complete Guide To Validation In ASP.NET MVC 3 - Part 2