0

我有一个显示 StartDate 和 EndDate 的视图,以及一个显示两个日期之间天数的只读字段。所有这些字段都使用剃刀视图定义中的标准 @Html.EditorFor() 方法绑定到我的模型。当我更改其中一个日期并单击保存时,

[HttpPost]
ViewResult Edit([modeltype] editedModel){
 ... }

方法在将新日期和计算值保存到数据库之前计算并设置计算字段的新值,然后返回具有更新模型的视图。我遇到的问题是视图没有显示新的计算值(而是根据初始页面加载显示原始计算值)。直到我离开并返回该视图 - 然后它会正确显示计算值。知道我错过了什么吗?浏览器是否可能在我的 HttpPost 之后显示页面的缓存版本?如果是这样,我可以禁用该行为吗?

4

1 回答 1

1

Html 助手更喜欢ModelStateCollection实际的Model. 这意味着它们将显示发布的值,而不是您在控制器中更新的值。

因此,如果您想返回与您的操作相同的模型,并且您已经更改了一些值,您需要ModelState在返回模型之前清除:

[HttpPost]
public ViewResult Edit(MyModel editedModel)
{

   //set some properties on editedModel

   ModelState.Clear();
   return View(editedModel);
}
于 2012-05-23T18:19:54.503 回答