缓存局部视图

时间:2013-09-09 08:38:18

标签: asp.net-mvc asp.net-mvc-4

我有这个控制器:

public ActionResult Save(Model m)
{
    var db = new Db();
    m.Prop = "New Value";
    db.Save(m);

    return PartialView("_ModelForm", m);
}

出于某种原因,尽管在控制器中更新了m,但"Old Value"的{​​{1}}会在响应中返回而不是Prop

我查看了HTTP响应,并将旧值作为响应的一部分返回("New Value"更改被忽略),因此问题是它被缓存在客户。

我尝试使用OutputCache属性修饰控制器,但没有成功。

"New Value"没有改变db.Save属性的副作用。

1 个答案:

答案 0 :(得分:2)

您必须使用ModelState.Clear()。当您重新发布视图时,其值将从ModelState填充。

public ActionResult Save(Model m)
{
    ModelState.Clear();
    var db = new Db();
    m.Prop = "New Value";
    db.Save(m);

    return PartialView("_ModelForm", m);
}