asp.net mvc - необязательное значение / значение по умолчанию для целочисленного поля - PullRequest
6 голосов
/ 22 февраля 2011

Скажем, у меня есть модель вида, например:

public class User 
{
    public int Id { get; set; }

    [Required(ErrorMessage="Username is required")]
    public string Username { get; set; }

    [Range(0, 255)]
    public int Owner { get; set; }
}

Страница отправляется на контроллер, где я проверяю, есть ли ModelState.IsValid, но не проходит. Очевидно, владелец требуется. Это почему? Я думал, что значение по умолчанию для неназначенного int было 0. Если я отлаживаю приложение и проверяю объект, который отправляется на контроллер, значение действительно равно 0.

Если я не хочу заставлять пользователя вводить 0, каков наилучший подход? Я попытался добавить атрибут [DefaultValue (0)] к свойству Owner в классе, но, похоже, это не имеет никакого значения.

Некоторое руководство было бы неплохо, даже если бы это было новичком или тривиальной проблемой привыкания к концепции.

С уважением,

Ответы [ 2 ]

3 голосов
/ 23 июня 2012

Вы пытались присвоить владельцу значение int , которое можно обнулять ?

[Range(0, 255)]
public int? Owner { get; set; }
0 голосов
/ 24 сентября 2012

Перед проверкой modelState:

вы можете проверить, имеет ли оно значение NULL.
if (viewModel.Owner == null)
{
  viewModel.Owner = 0;
}

if(ModelState.IsValid)
...
...