1

我有一个关于 asp.net mvc3 中的模型状态的问题,我有一个控制器假设Home和一个动作submitform。现在我第一次将我的表单提交给这个操作并且用户输入了一些错误我使用模型状态返回错误

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);
       } 
}
4

2 回答 2

5
Modelstate.Remove("yourkey"); //remove one

Modelstate.Clear(); //remove all
于 2012-05-08T06:41:56.823 回答
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 .");
于 2012-05-08T06:32:12.883 回答