2011-06-03 61 views
11

我想在我的ASP.NET MVC 3应用程序,所以我可以用在我的看法那些命名空间类而无需@using的web.config中添加命名空间configuration/system.web/pages/namespaces,然而这没有效果。我如何将命名空间添加到我的视图?添加命名空间来ASP.NET MVC 3次

回答

28

MVC剃须刀对名称空间有不同的区域。

看第二web.config文件中,一个在你的浏览文件夹并添加命名空间的这种方式。

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
      <add namespace="System.Web.Mvc" /> 
      <add namespace="System.Web.Mvc.Ajax" /> 
      <add namespace="System.Web.Mvc.Html" /> 
      <add namespace="System.Web.Routing" /> 
      <add namespace="Telerik.Web.Mvc.UI;"/> 
     </namespaces> 
    </pages> 
</system.web.webPages.razor> 
+0

嘿,甚至没有注意到那里有一个web.config。有效100%,谢谢+1。将在几分钟内接受。 – 2011-06-03 01:10:47

+0

非常欢迎。我学会了自己的努力... – 2011-06-03 01:21:31

+9

请注意,关闭和重新打开视图的下面的答案也需要在将Visual Studio文件夹添加到名称空间并重新构建解决方案之后,Visual Studio停止向我提供错误之前。 – Matthew 2013-01-07 16:23:39

8

我不知道它为什么这么片状,但机会是,它实际工作,但直到你接近的Visual Studio不承认它,然后重新打开您所在的视图。另外请确保您位于Views目录中的web.config中。

+0

试过了,没有骰子。 ;)我一定要在发布之前尝试上传和执行页面,并且它无法编译视图。 – 2011-06-03 01:09:11

+0

因此,您正在修改位于Views目录根目录的web.config,如@DisplacedGuy建议?我认为应该照顾它。如果这是您使用的视图引擎,请确保您位于'system.web.webPages.razor'层次结构中。 – ataddeini 2011-06-03 01:12:45

+0

是的,我最初的问题是我使用'configuration/system.web/pages/namespaces'而不是'system.web.webPages.razor'作为@DisplacedGuy建议。 – 2011-06-03 02:01:24

1

我用这种方法将资源文件包含到我的视图中,但Razor不想拿起我的类。经过一番拔毛之后,我意识到我没有将Resources.resx文件上的访问修饰符更改为public(默认情况下,它创建为Internal)。一旦我改变它&重新编译,我可以从所有视图访问我的资源。

新手的错误,不愿看到这一点,但希望它会节约一些疼痛。