好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Razor页面中的共享namespace不起作用了

Razor页面中的共享namespace不起作用了

Razor页面中的共享namespace不起作用了(解决自定义扩展方法不能识别的问题)

在MVC2时代,我们如果希望在页面上引入一个namespace,可以这样来实现

 1  <%@ Import Namespace= "  Web.Helpers  "  %>

如果名称空间是所有页面都需要的,像System.Web.Mvc这种类型的,我们可以把它写在web.config里,像这样

  1  <pages>
  2        <namespaces >
  3          <add  namespace = "  System.Web.Helpers  "  />
  4          <add  namespace = "  System.Web.Mvc  "  />
  5          <add  namespace = "  System.Web.Mvc.Ajax  "  />
  6          <add  namespace = "  System.Web.Mvc.Html  "  />
  7          <add  namespace = "  System.Web.Routing  "  />
  8          <add  namespace = "  Web.Helpers  " />
  9        </namespaces>
 10      </pages>

但,到了MVC时代,如果你选择的模板引擎是razor,那以上的web.config里的设置就是没有用的了,因为razor做为一种第三方的组件为.net引入,它是在views目录下的web.config中

进行配置的,所以,你在根目录的web.config里的pages标签下设置namespace是不起作用的。

我们需要打开Views/Web.config,我们可以代到下面代码:

  1  <configuration>
  2    <configSections>
  3      <sectionGroup name= "  system.web.webPages.razor  "  type= "  System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35  " >
  4        <section name= "  host  "  type= "  System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35  "  requirePermission= "  false  "  />
  5        <section name= "  pages  "  type= "  System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35  "  requirePermission= "  false  "  />
  6      </sectionGroup>
  7    </configSections>
  8  
  9    <system.web.webPages.razor>
 10      <host factoryType= "  System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35  "  />
 11      <pages pageBaseType= "  System.Web.Mvc.WebViewPage  " >
 12        <namespaces>
 13          <add  namespace = "  System.Web.Mvc  "  />
 14          <add  namespace = "  System.Web.Mvc.Ajax  "  />
 15          <add  namespace = "  System.Web.Mvc.Html  "  />
 16          <add  namespace = "  System.Web.Routing  "  />
 17          <add  namespace = "  Web.Commons.Helpers  " />
 18          <add  namespace = "  Web.Helpers  " />
 19  
 20        </namespaces>
 21      </pages>
 22    </system.web.webPages.razor>
 23  </configuration>

像其它第三方组件一样,razor也是在配置文件中进行声明的,我们找到这个文件的namespaces节点,添加我们需要的namespace,重新VS后,你的命名空间下的内容就被共享到

View上了。

爱上MVC3目录

爱上MVC3系列~Razor模板页

爱上MVC3系列~全局异常处理与异常日志

爱上MVC3系列~使用视图模型的好处及与数据模型之间的赋值问题

爱上MVC3系列~RenderAction与RenderPartial及一个页面多个表单提交

爱上MVC3系列~Html.BeginForm与Ajax.BeginForm

爱上MVC3系列~PartialView中的页面重定向

爱上MVC3系列~Razor页面中的共享namespace不起作用了(解决自定义扩展方法不能识别的问题)

 

分类:  .NET MVC

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于Razor页面中的共享namespace不起作用了的详细内容...

  阅读:48次