加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.net MVC – 文本框值保留POST的值

发布时间:2020-12-15 17:19:28 所属栏目:百科 来源:网络整理
导读:我的MVC应用程序中有一个包含文本框的表单.当表单POST到页面时,我对模型值进行了修改并重新显示视图.文本框仍然显示POST的值. 这是代码: @using( Html.BeginForm() ) { @Html.TextBoxFor( m = m.Foo ) input type="submit" value="Save" /}public class Tes
我的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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读