繁体   English   中英

继承的ASP.NET MVC OutputCache无法正常工作

[英]ASP.NET MVC OutputCache inherited is not working

您好,我正在尝试使用OutputCache继承基本控制器。 但是它不起作用,我的代码:

BaseController

 public abstract partial class BasicControllerController : Controller
{

    protected override void Initialize(System.Web.Routing.RequestContext requestContext)
    {
        if (requestContext == null)
        {
            throw new ArgumentNullException("filterContext");
        }
        base.Initialize(requestContext);
    }
}

控制者

 [OutputCache(Duration=60)]
public class SamplesController : BasicControllerController
{
    public ActionResult AgendamentoEmail()
    {
        return View();
    }
}

视图

@System.DateTime.Now

但是只是不起作用。 仅当我没有继承或删除基本控制器下面的代码时,它才有效

public abstract partial class BasicControllerController : Controller
{
    //protected override void Initialize(System.Web.Routing.RequestContext requestContext)
    //{
    //    if (requestContext == null)
    //    {
    //        throw new ArgumentNullException("filterContext");
    //    }
    //    base.Initialize(requestContext);
    //}

}

我想我必须在受保护的覆盖无效初始化中做一些实现。

详细信息:我需要此方法,因为有些变量使用其他控制器

我之前已经处理过这个问题,发现某些先前存在的属性不能被继承,因为它们是在声明中以这种方式设计的。

我发现的唯一方法是创建一个新属性,该属性扩展了要使用的属性,但将其标记为Inherited,就像这样:

[AttributeUsage (Inherited = True)]
public class InheritedOutputCacheAttribute : OutputCacheAttribute
{
...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM