воскресенье, 11 декабря 2016 г.

asp.net mvc - невалидные параметры действия - нюанс

обнаружил такую вещь. если есть действие:

public ActionResult MyAction (string name, int age)
{
}

если с клиента придет для ключа "age" нечисловое значение - вылетит исключение.

однако, если изменить действие так:


class PersonParams {
     pubic string name {get;set;};
     public int age{get;set;}
}
(кстати, поля фреймворком игнорируются, нужно объявлять именно свойства)

public ActionResult MyAction (PersonParams personParams)
{
}


 - в этом случае, если с клиента придет для ключа "age" нечисловое значение - действие будет выполняться, исключение не вылетит, свойство age будет иметь дефолтовое значение 0, а ModelState.IsValid будет иметь значение true