【问题标题】:How to Remove Previously Saved messages from ModelState in asp.net mvc3如何从 asp.net mvc3 中的 ModelState 中删除以前保存的消息
【发布时间】:2012-05-16 15:27:59
【问题描述】:

我有一个关于 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);
       } 
}

【问题讨论】:

  • 请显示您的完整控制器/操作方法代码。
  • RModel.date 属性的值是否固定为“2/2/2012”?如果 RModel.date 的值为 null 或其他任何值,它应该添加 'date is wrong...' 错误。

标签: c# asp.net-mvc asp.net-mvc-3 modelstate


【解决方案1】:
Modelstate.Remove("yourkey"); //remove one

Modelstate.Clear(); //remove all

【讨论】:

    【解决方案2】:

    使用命名的错误消息。这使您能够清理它们:

    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 .");
    

    【讨论】:

    • 但是我之前输入了一个没有名字的错误,那么现在我该如何删除呢?
    猜你喜欢
    • 1970-01-01
    • 2013-06-10
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2013-07-22
    相关资源
    最近更新 更多