我有一个关于asp.net mvc3中的modelstate的问题,我有一个控制器假设Home
并且其中有一个动作submitform
。现在我第一次将表单提交给此操作并且用户输入了一些错误我使用modelstate
ModelState.AddModelError("", "Your entered date is wrong .");
现在,当用户再次提交表格时,假设日期正确,但这次输入了错误的名称,现在当我在此步骤返回错误时
ModelState.AddModelError("", "name should be at least 4 character long .");
但现在当我退回此处时,我会看到name should be at least 4 character long .
并看到Your entered date is wrong.
,问题是什么?
以下是我的完整代码
[Authorize]
[System.Web.Mvc.OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public class HomeController : Controller
{
public ActionResult Formsubmit(mymodel RModel)
{
if(RModel.date != "2/2/2012")
{
ModelState.AddModelError("", "Your entered date is wrong .");
}
if(RModel.name.cout() < 4)
{
ModelState.AddModelError("", "name should be at least 4 character long .");
}
return View(RModel);
}
}
答案 0 :(得分:5)
Modelstate.Remove("yourkey"); //remove one
Modelstate.Clear(); //remove all
答案 1 :(得分:1)
使用命名错误标记。这使您能够清理它们:
ModelState.AddModelError("WrongData", "Your entered date is wrong .");
后
ModelState.AddModelError("WrongData", ""); //clear error message
ModelState.AddModelError("WrongLenth", "name should be at least 4 character long .");
作为奖励,如果您出于某种原因决定显示一些错误消息2次,您也可以这样做:
ModelState.AddModelError("WrongData", "Your entered date is wrong .");
ModelState.AddModelError("WrongData2", "Your entered date is wrong .");