1
我有一個類我模型綁定,我想使用輸出緩存。我不能找到一種方法來訪問綁定對象GetVaryByCustomString
VaryByCustom和模型綁定
例如:
public class MyClass
{
public string Id { get; set; }
... More properties here
}
public class MyClassModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var model = new MyClass();
... build the class
return model;
}
}
我設置的粘結劑Global.cs
ModelBinders.Binders.Add(typeof(MyClass), new MyClassModelBinder());
然後使用輸出緩存這樣。
[OutputCache(Duration = 300, VaryByCustom = "myClass")]
public ActionResult MyAction(MyClass myClass)
{
.......
public override string GetVaryByCustomString(HttpContext context, string custom)
{
... check we're working with 'MyClass'
var routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(context));
var myClass = (MyClass)routeData.Values["myClass"]; <-- This is always null
myClass不在路由表事件中,但模型聯編程序被觸發。
一如既往的任何幫助將是最受歡迎的。
乾杯
感覺有點哈克,但它的作品。乾杯。 – Magpie
@Magpie,歡呼聲。 –