У меня есть модель под названием «Публикация», которая имеет другую модель внутри него под названием «Издательство»:MVC4 ModelState Validation и необходимые параметры
public class Publication
{
public int PublicationID { get; set; }
public Publisher Publisher { get; set; }
}
public class Publisher
{
public int PublisherID { get; set; }
[Required]
public string Name { get; set; }
}
Так что, когда я получаю данные по публикациям из базы данных, я также заполняйте информацию издателя для каждой публикации, чтобы работать с ней, если это необходимо.
Когда я добавляю еще одну публикацию, я должен выбрал издатель, это обязательное поле, и у меня есть DropDownList на странице, содержащей все издатели, так что пользователь может выбрать, какой издатель для этой публикации:
<div>
@HtmlDropDownListFor(model => model.Publisher.PublisherID, myPublisherList)
</div>
И это заполнение данных прекрасно, но я получаю сообщение об ошибке в строке:
if(ModelState.IsValid)
Поскольку не было указано имя издателя, даже если мне нужно только удостоверение личности. Я не хочу отбрасывать строку Model.IsValid, потому что есть куча других полей, которые требуют проверки, и я хотел бы оставить ее как можно более чистой, так что есть простой способ заполнить ее имя ?
Я подумал о добавлении скрытого поля и использовании Javascript, чтобы заполнить значение каждый раз, когда пользователь меняет Select, но я бы хотел использовать чистый и javascript-бесплатный подход, если это возможно.
Спасибо!