假设我有一个带验证的模型
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();
}
但文本框包含以前的值。它如何保留价值?有没有办法避免它?
由于
答案 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期间提交给服务器的名称和值对的集合。它还包含每个提交值的错误消息集合。