在MVC中回发期间保留的值

时间:2011-07-20 11:57:54

标签: asp.net-mvc validation

假设我有一个带验证的模型

public class LoginModel
{
    [Required(ErrorMessage="ID not entered")]
    [StringLength(5,ErrorMessage = "Length should be 5")]
    public string Id { get; set; }




}

在视图页面中,我有一个文本框。验证失败时。控制器返回到包含错误消息的视图页面。

public ActionResult Login()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Login(LoginModel lg)
    {
        if(ModelState.IsValid)
        {
            return RedirectToAction("Index", "Home");

        }
        return View();

    }

但文本框包含以前的值。它如何保留价值?有没有办法避免它?

由于

3 个答案:

答案 0 :(得分:2)

ModelState保存该值。 编辑控件在渲染时引用它。

您可以尝试找到答案here

答案 1 :(得分:1)

删除数据只需尝试rattlemouse发布的链接 -

ModelState.Clear()

或者您使用

手动完成
 [HttpPost]
    public ActionResult Login(LoginModel lg)
    {
        if(ModelState.IsValid)
        {
            return RedirectToAction("Index", "Home");

        }
       else{
             lg.Id = string.Empty;
             return View(lg);
        }

    }

答案 2 :(得分:0)

清除ModelState并返回没有模型的视图。

  ModelState.Clear();
  return View();

ModelState

Controller.ModelState Property

  

ModelState是Controller的一个属性,可以从继承自System.Web.Mvc.Controller的那些类访问。 ModelState表示在POST期间提交给服务器的名称和值对的集合。它还包含每个提交值的错误消息集合。