文本框值保留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。我记得读过一些关于为什么会发生这种情况的文章,但现在似乎找不到了。我知道这是一个糟糕的例子,但我只是想记住为什么它是这样做的,以及解决方案是什么(除了重定向)。是否有一种方法,让它显示更新的模型值,而不是什么形式的价值,张贴?

文本框值保留post的值

您可以清除模型状态,并且帮助器应该显示新值。

[HttpPost]
public ActionResult Index(MyModel model) {
    model.Foo += "bar";
    ModelState.Clear();
    return View(model);
}