我有兩個簡單的模型,模型1,模型2如下:MVC多視圖模型和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始終爲真?雖然數據註釋已設置。以及如何在一個操作中驗證兩個模型?
您是否確定視圖確實發送的不是文本而是一些文本?你也可以嘗試設置一個長度,例如'[StringLength(50),Required]' –
是的,當表單被加載時,我沒有填寫必填字段並點擊提交按鈕,並且在Controller中,** bigModel **即使所需的值爲空,但ModelState仍然有效。事實上,我認爲我的BigModel沒有看到內部模型的數據註解! – Azarsa