我有一个简单的TestController类和用户模型:
public class TestController : Controller
{
public ActionResult TestAction()
{
return View();
}
[HttpPost]
public ActionResult TestAction(User user)
{
return View();
}
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
这是我的表格:
据我所知,MVC是无状态的,它没有viewstate概念。但是在将数据发布到我的控制器之后以及当我返回视图时,我的所有数据都在那里。我希望空字段,但它们都填充了发布的数据。我无法理解MVC如何知道回发后的值?
答案 0 :(得分:3)
您需要使用 ModelState.Clear()
public class TestController : Controller
{
public ActionResult TestAction()
{
return View();
}
[HttpPost]
public ActionResult TestAction(User user)
{
ModelState.Clear()
return View();
}
}
答案 1 :(得分:1)
@ stephen.vakil
当您从HttpPost返回视图时,假设您正在处理错误条件。它会将发布的数据保留在ModelState中,并重新填充页面上的数据,以便用户可以更正它。