在ASP.NET MVC中为特定区域注册HttpHandler

时间:2013-04-05 14:18:50

标签: asp.net-mvc

我正在尝试仅为特定区域注册HTTP处理程序。所以不必在root web.config中注册它。

如果我在root web.config中注册处理程序,它可以正常工作:

<system.web>
  <httpHandlers>
    <add path="/Telerik.ReportViewer.axd" verb="*" type="Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=6.2.12.1017, Culture=neutral, PublicKeyToken=a9d7983dfcc261be" validate="true" />
  </httpHandlers>
</system.web>

但是在一个区域内的web.config中,即域\ reporting \ views \ web.config 它似乎没有注册处理程序。我得到以下异常:

  

报表查看器所需的http处理程序尚未在应用程序的web.config文件中注册。添加到配置文件的system.web / httpHandlers部分。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的问题困扰着我们许多人:区域配置不是项目中配置的继承树的一部分。它们仅用于配置其中的视图和交付。

您可以选择创建一个从该处理程序继承的包装类,全局注册它并仅在您在当前上下文的routeData中发现该区域时调用它的功能。

我希望这在某种程度上有所帮助。多年来我一直感受到这种痛苦。