【问题标题】:ASP.NET MVC Custom Attributes within Custom View Engine自定义视图引擎中的 ASP.NET MVC 自定义属性
【发布时间】:2011-02-27 22:03:36
【问题描述】:

假设我写了一个自定义属性...

public class SpecialActionFilterAttribute : System.Web.Mvc.ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
    }
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // set some parameters here. 
    }
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
    }
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
    }
}

然后我创建一个自定义 ViewEngine,并覆盖 FindView/FindPartialView...

    public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
    {
        // how can I get those parameters here? 

        return base.FindView(controllerContext, viewName, masterName, useCache);
    }

我希望能够利用自定义属性将各种“标志”传递给自定义视图引擎。这有可能吗?

【问题讨论】:

    标签: asp.net-mvc viewengine


    【解决方案1】:
    public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
    {
        var controller = controllerContext.Controller;
    
        var controllerType = controller.GetType();
    
        //now we can use reflection
        var attributes = controllerType.GetAttributes();
    
        // how can I get those parameters here? 
    
        return base.FindView(controllerContext, viewName, masterName, useCache);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多