У меня есть две простые модели Model1, model2 как показано ниже:MVC множественным ViewModel и ModelState
public class Model1
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
public class Model2
{
public int Id { get; set; }
[Required]
public string Code { get; set; }
}
У меня есть BigModel содержит две другие модели, как:
public class BigModel
{
public BigModel()
{
Model1 = new Model1();
Model2 = new Model2();
}
public Model1 Model1 { get; set; }
public Model2 Model2 { get; set; }
}
и в моем контроллере:
public ActionResult Register(BigModel bigModel)
{
if (ModelState.IsValid)
{
//do somthing
return RedirectToAction("Index");
}
return View(bigModel);
}
Мой вопрос: почему ModelState.IsValid всегда верен? хотя аннотации данных заданы. и Как я могу проверить две модели в одном действии?
Вы убедитесь, что View не действительно посылает ничего, а не какой-нибудь текст? Вы также можете попробовать установить длину, такую как '[StringLength (50), Required]' –
Да, когда форма загружена, я не заполняю необходимые поля и не нажимаю кнопку отправки, а в контроллере ** bigModel ** значения имеют нулевое значение, но ModelState остается в силе. Действительно, я думал, что мой BigModel не видел аннотации данных внутренних моделей! – Azarsa