Asp. net core MVC Типы данных в модели и нулевые значения - PullRequest
0 голосов
/ 03 мая 2020

У меня есть простая модель MyModel:

[Key]
public int Id { get; set; }
public string 1stString { get; set; }
public string 2ndString { get; set; }
public string 3rdString { get; set; }
[DataType(DataType.Date)]
public DateTime MyDate { get; set; }

В моем контроллере у меня тогда:

[HttpGet]
public async Task<IActionResult> MyView(int? id)
{
    var model = await _db.MyModel.ToListAsync(); ///HERE IT THROWS ERROR
    ViewBag.Id = id ?? 1;
    return View(model);
}

У меня проблема с тем, что у меня есть значения Null в моей БД, поэтому он автоматически выбрасывает эта ошибка из-за даты и времени, я полагаю?

1 Ответ

0 голосов
/ 03 мая 2020

Вы должны удалить аннотацию DataType из свойства DateTime и сделать ее обнуляемой

[Key]
    public int Id { get; set; }
    public string 1stString { get; set; }
    public string 2ndString { get; set; }
    public string 3rdString { get; set; }

    public DateTime? MyDate { get; set; }

Если вы хотите получить только дату, вы можете украсить вашу ViewModel следующим образом:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
...