ASP.NET MVC Conditional validation

Posted by Peter Stegnar on Stack Overflow See other posts from Stack Overflow or by Peter Stegnar
Published on 2010-03-10T13:19:44Z Indexed on 2012/03/24 11:29 UTC
Read the original article Hit count: 294

Filed under:
|

How to use data annotations to do a conditional validation on model?

For example, lets say we have the following model (Person and Senior):

 public class Person
    {
        [Required(ErrorMessage = "*")]
        public string Name
        {
            get;
            set;
        }

        public bool IsSenior
        {
            get;
            set;
        }


        public Senior Senior
        {
            get;
            set;
        }
    }

    public class Senior
    {
        [Required(ErrorMessage = "*")]//this should be conditional validation, based on the "IsSenior" value
        public string Description
        {
            get;
            set;
        }
    }

And the following view:

<%= Html.EditorFor(m => m.Name)%>
<%= Html.ValidationMessageFor(m => m.Name)%>

<%= Html.CheckBoxFor(m => m.IsSenior)%>
<%= Html.ValidationMessageFor(m => m.IsSenior)%>

<%= Html.CheckBoxFor(m => m.Senior.Description)%>
<%= Html.ValidationMessageFor(m => m.Senior.Description)%>

I would like to be the "Senior.Description" property conditional required field based on the selection of the "IsSenior" propery (true -> required). How to implement conditional validation in ASP.NET MVC 2 with data annotations?


UPDATE

Found nice solution. Look below.

© Stack Overflow or respective owner

Related posts about asp.net-mvc

Related posts about validation