asp.net-mvc – MVC – 更改模型的视图中的值[封闭]

我有从模型显示一些数据的视图。我有提交按钮,其中onClick事件应该更改模型的值,并且传递不同值的模型,但我在TextBoxFor中的值保持与页面加载时相同。我该怎么改?

解决方法

这就是HTML助手的工作原理,而且是按设计。他们将首先查看POSTed数据,然后再在模型中查看。所以例如如果你有:
<% using (Html.BeginForm()) { %>
    <%= Html.TextBoxFor(x => x.Name) %>
    <input type="submit" value="OK" />
<% } %>

您正在发布以下操作:

[HttpPost]
public ActionResult Index(SomeModel model)
{
    model.Name = "some new name";
    return View(model);
}

当重新显示视图时,将使用旧值。一个可能的解决方法是从ModelState中删除该值:

[HttpPost]
public ActionResult Index(SomeModel model)
{
    ModelState.Remove("Name");
    model.Name = "some new name";
    return View(model);
}

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...