【发布时间】:2012-08-31 19:44:02
【问题描述】:
在许多情况下,我都遇到了一个问题,即我在服务器上创建了一个模型,该模型是回传值的结果。在处理模型时,一些模型值会发生变化,然后重新显示在页面上。是否有一些简单的方法可以覆盖导致 MVC 框架使用 POSTed 值而不是我的模型值的行为。
例子:
型号
public class MyModel {
public string Value1 { get; set; }
}
控制器
public MyController : Controller {
public ActionResult MyAction() {
var model = new MyModel();
model.Value1 = "OldValue";
return View(model);
}
[HttpPost]
public ActionResult MyAction(MyModel model) {
model.Value1 = "NewValue";
return View(model);
}
}
查看
@using(Html.BeginForm("MyAction", "My", FormMethod.Post) {
@Html.TextBoxFor(m => m.Value1)
<input type="submit"/>
}
首次加载此页面时,文本框将包含“OldValue”。单击提交后,文本框仍然包含“OldValue”,因为这是 POST 回服务器的内容,但我希望它使用模型 (NewValue) 中的值创建第二个页面(在 POST 之后)。
有没有一种简单的方法来告诉 MVC 以这种方式运行?我不确定在这种情况下我应该怎么做才能得到我想要的结果。
注意 - 这都是伪代码,所以我可能有一些错误,但概念应该存在。
【问题讨论】:
标签: asp.net asp.net-mvc-3