ksg*_*ksg 0 unobtrusive-validation asp.net-mvc-4 foolproof-validation
我MVC Foolproof validation在我的申请中使用.方案是我有一个名为CustomerType的下拉列表,其中包含以下值
Id Name
1 Student
2 Non-Employed
3 Employed
4 SelfEmployed
Run Code Online (Sandbox Code Playgroud)
我的视图模型中还有一个属性.public string CompanyAddress{ get; set; }我的目标是使CompanyAddress required if下拉列表具有值3 or 4
我尝试了以下内容
[Required(ErrorMessage = "Please select status of the customer", AllowEmptyStrings = false)]
public int? customerTypeID { get; set; }
public SelectList customerTypeList { get; set; }
[RequiredIf("IsCompanyAddressRequired", true, ErrorMessage = "please enter company address")]
public string CompanyAddress { get; set; }
public bool IsCompanyAddressRequired
{
get
{
if (customerTypeID == 3 || customerTypeID == 4)
{
return true;
}
else
{
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在服务器端正常工作,但在客户端,我收到以下错误
`Uncaught TypeError: Cannot read property 'value' of undefined`
Run Code Online (Sandbox Code Playgroud)
验证的引用如下
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/plugins/jQueryVal/jquery.unobtrusive*",
"~/plugins/jQueryVal/jquery.validate*",
"~/plugins/foolproofValidation/MvcFoolproofJQueryValidation.min.js",
"~/plugins/foolproofValidation/mvcfoolproof.unobtrusive.min.js",
"~/plugins/foolproofValidation/MvcFoolproofValidation.min.js"
));
Run Code Online (Sandbox Code Playgroud)
小智 6
您的验证属性无法在客户端上的客户端上运行,除非您要生成输入(例如)<input name="IsCompanyAddressRequired" value="false" />(或value="true"取决于其初始值customerTypeID),然后在更改下拉列表值时使用javascript动态更新value属性.
而是使用
[RequiredIf("customerTypeID", Operator.GreaterThan, 2, ErrorMessage = "..")]
public string CompanyAddress { get; set; }
Run Code Online (Sandbox Code Playgroud)
并删除你的IsCompanyAddressRequired财产.
| 归档时间: |
|
| 查看次数: |
1379 次 |
| 最近记录: |