Asp.net-Mvc-3

OutputCache 因複雜對象屬性而異

  • November 1, 2017

我有一個控制器操作,它接收一個複雜對像作為參數,我需要 OutputCache 隨這個複雜對象的屬性之一而變化。這可能嗎?如何?

如果你有一個像

public class person{
public string Name {get;set;}
public string location {get;set;}
} 

在(強類型)視圖中,您有一個表格

@model Person

@Html.BeginForm(){
 @Html.TextBoxFor(x=>x.Name)
 @Html.TextBoxFor(x=>x.location)
}

然後您將表單送出給ActionResult savePerson,並帶有不同的簽名,例如

public ActionResult savePerson(Person p){
// p.Name
// p.location

}

或者

public ActionResult savePerson(string Name, string location){

}

因此我認為如果你像這樣註釋 ActionResult

[OutputCache(Duration=3600, VaryByParam="Name")]
public ActionResult savePerson(Person p)
{
   //
   return View();
}

它會為你做的,或者如果你有一個複雜的模型,比如

public class person{
public string Name {get;set;}
public Location loc {get;set;}
} 
public class Location{
 public string address
}

嘗試

[OutputCache(Duration=3600, VaryByParam="Person.Location.address")]
public ActionResult savePerson(Person p)
{
   //
   return View();
}

引用自:https://stackoverflow.com/questions/15193383