Reputation: 4067
I have a dropdownlist named CustomerType with the the following values
Id Name
1 Student
2 Non-Employed
3 Employed
4 SelfEmployed
and I have one more property in my viewmodel
public string CompanyAddress{ get; set; }
My goal is to make CompanyAddress required if dropdownlist has values 3 or 4
I have tried the following but gets error Cannon have duplicate RequiredIf
[RequiredIf("customerTypeID", 3, ErrorMessage = "Please enter company address")]
[RequiredIf("customerTypeID", 4, ErrorMessage = "Please enter company address")]
public string CompanyAddress { get; set; }
Upvotes: 1
Views: 5021
Reputation: 1
For the "TypeError: Cannot read properties of undefined (reading 'value')" problem, add a hidden input element on your page for that new CompanyAddressRequired property.
<input type="hidden" id="CompanyAddressRequired"/>
I'm still working on getting the switchable field to provide validation summaries on my front end but this resolves the JS error.
Upvotes: 0
Reputation: 461
This will put logic in your model (which is usually a no-no), but it will work. You could change your validation to be like this:
[RequiredIf("CompanyAddressRequired", true, ErrorMessage = "Please enter company address")]
And then have a property with a getter like this:
public bool CompanyAddressRequired
{
get
{
return customerTypeID == 3 || customerTypeID == 4;
}
}
Upvotes: 4