我的MVC应用程序中有一个包含文本框的表单.当表单POST到页面时,我对模型值进行了修改并重新显示视图.文本框仍然显示POST的值.
这是代码:
@using( Html.BeginForm() ) { @Html.TextBoxFor( m => m.Foo ) <input type="submit" value="Save" /> } public class TestController : Controller { public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(MyModel model) { model.Foo += "bar"; return View(model); } }
无论形式是什么(假设我输入foo)我添加“bar”并尝试再次显示表单.但是当重新显示表单时,我看到的只有foo.我记得读过为什么会发生这种情况,但现在似乎无法找到它.我知道这是一个糟糕的例子,但我只是想记住它为什么这样做,以及解决方法是什么(除了重定向).有没有办法让它显示更新的模型值,而不是显示的形式值是什么?
解决方法
您可以清除模型状态,帮助程序应显示新值.
[HttpPost] public ActionResult Index(MyModel model) { model.Foo += "bar"; ModelState.Clear(); return View(model); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。