文本框值保留post的值
本文关键字:post 的值 保留 文本 | 更新日期: 2023-09-27 18:06:32
我有一个窗体在我的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);
}