Сообщение проверки «Поле Id обязательно» при создании; Идентификатор не установлен на [Обязательно]
Это происходит, когда я пытаюсь создать объект с помощью действия «Создать стиль» в Asp.Net MVC 2.
POCO обладает следующими свойствами:
public int Id {get;set;}
[Required]
public string Message {get; set}
При создании сущности Id устанавливается автоматически, поэтому в действии Create нет необходимости.
ModelState говорит, что "Поле Id обязательно для заполненияно у меня неттак и должно быть. Здесь происходит что-то автоматическое?
РЕДАКТИРОВАТЬ - Причина раскрыта
На причину проблемы отвечает Брэд Уилсон через Пола Сперанца в одном из комментариев ниже, где он говорит (приветствует Пола):
Вы'Вы предоставляете значение для ID, вы просто неЯ знаю, что ты был. Это's в данных маршрута маршрута по умолчанию ("{Контроллер} / {действие} / {ID}»), и его значением по умолчанию является пустая строка, которая нет действителен для int. Используйте атрибут [Bind] в параметре action, чтобы исключить ID. Мой маршрут по умолчанию был: новый {контроллер = "Покупатель", действие = "Редактировать", id = " " } // Параметры по умолчанию
РЕДАКТИРОВАТЬ - Обновление модели техники
Я фактически изменил способ, которым я сделал это снова, используя TryUpdateModel и массив параметров исключения, связанный с этим.
[HttpPost]
public ActionResult Add(Venue collection)
{
Venue venue = new Venue();
if (TryUpdateModel(venue, null, null, new[] { "Id" }))
{
_service.Add(venue);
return RedirectToAction("Index", "Manage");
}
return View(collection);
}