【发布时间】:2011-06-21 05:00:32
【问题描述】:
我有一个视图,它显示了模型中的一些数据。我有提交按钮,onClick 事件应该更改模型的值,并且我传递了具有不同值的模型,但我在 TextBoxFor 中的值与页面加载时的值保持不变。我该如何更改它们?
【问题讨论】:
-
没有任何源代码不可能给出任何答案
我有一个视图,它显示了模型中的一些数据。我有提交按钮,onClick 事件应该更改模型的值,并且我传递了具有不同值的模型,但我在 TextBoxFor 中的值与页面加载时的值保持不变。我该如何更改它们?
【问题讨论】:
这就是 HTML 助手的工作方式,而且是设计使然。他们将首先查看已发布的数据,然后查看模型。例如,如果您有:
<% 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);
}
【讨论】: