代码改变世界

MVC3 下 Razor 视图方式引用名字空间的方法

2011-02-11 14:21  杰出的世界  阅读(685)  评论(0编辑  收藏  举报

一般的配置是在站点根目录Web.Config下的configuration/system.web/pages/namespaces节点下新增即可。但是如果使用了Razor试图方式,在这个节点下配置就不起作用了。具体体现在使用namespaces节点下的类需要在当前页面或者当前类中重新显示的来引用。

解决的方法:
 
站点的根目录下Web.Config文件中,新增以下配置:

   
1 <configSections>
2 <sectionGroup name="system.web.webPages.razor"
3 type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,
4 System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
5 <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor,
6 Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
7 <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,
8 System.Web.WebPages.Razor,
9 Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
10 requirePermission="false" />
11 </sectionGroup>
12 </configSections>

然后增加以下节点:

 
1 <system.web.webPages.razor>
2 <pages pageBaseType="System.Web.Mvc.WebViewPage">
3 <namespaces>
4 <add namespace="... ..." />
5 </namespaces>
6 </pages>
7 </system.web.webPages.razor>


处理完之后,在页面或者后台代码中就可以不加引用直接使用配置文件中名字空间下的类了。

如果是一般方式,如WebForm,则配置还在configuration/system.web/pages/namespaces下。

由于走了弯路,所以记录下来,以备查找。