我遇到了问题,我不知道哪个结果是正确的。
我根据运行应用程序的位置获取两种不同的方案 - 本地(调试模式)/开发(在单独的服务器上)。
我有一个视图模型ConsultationViewModel超过两个.aspx页面(我想记住两种形式之间的数据)。
表格1 两个对象(字符串) - 一个[必需]
表格2 两个对象(字符串) - 两个[必需]
这是我获得不同场景的地方:
•本地主持人:表格1 - 表格2 =无验证错误 •开发:表格1-表格2 =验证错误
表格1
public string Rate { get; set; }
[Required(ErrorMessage = "You must enter your comments")]
public string Comments { get; set; }
表格2
[Required(ErrorMessage = "Please select a option")]
public string WhatAreYou { get; set; }
[Required(ErrorMessage = "Please select a option")]
public string EthnicOrigin { get; set; }
为什么在开发服务器上需要验证WhatAreYou / EthinicOrigin是否实际上从未在表单2上使用过?
[HttpGet]
public ActionResult Index()
{
ConsultationHolderViewModel consultationViewModel = new ConsultationViewModel();
return View(consultationViewModel);
}
[HttpPost]
public ActionResult Index(ConsultationViewModel consultationViewModel)
{
if (!ModelState.IsValid)
{
return View(consultationViewModel);
}
return View("Equalities", consultationViewModel);
}
[HttpPost]
public ActionResult Equalities(ConsultationViewModel consultationViewModel)
{
if (!ModelState.IsValid)
{
return View(consultationViewModel);
}
switch (consultationViewModel.Button)
{
case "Back":
return View("Index", consultationViewModel);
case "Continue":
return View("Receipt", consultationViewModel);
}
return View("Equalities", consultationViewModel);
}
提前感谢您的帮助,
克莱尔
答案 0 :(得分:0)
我的赌注是它与默认的mvc2模型绑定有关。它验证所有模型属性。
因此,如果你的模型有它们,即使你没有发布它们甚至不需要它们 - 你仍然会得到验证错误。