2013-07-09 207 views
3

我开始空项目,所以没有@Styles.Render使用“使用System.Web.Optimization”布局页,我不得不从的NuGet包下载Web.Optimization创建BundleConfig.cs类App_Start文件夹。然后请避免在我的_Layout.cshtml中写入@using System.Web.Optimization我在Views文件夹中的Web.config中添加了命名空间。如何避免

<pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
     ... 
     <add namespace="System.Web.Optimization" /> 
     ... 
    </namespaces> 
</pages> 

但这不解决我的问题,我仍然需要编写@using System.Web.Optimization。我做错了什么?

+0

为什么你需要编写using语句?如果你不这样怎么办?什么时候出现错误,设计时间,运行时间或两者兼而有之?你有没有尝试重新启动Visual Studio? – CodeCaster

+0

你清理了你的解决方案,然后重建它?一旦你包含这个指令,你似乎应该有权访问它。 –

+0

即使在重建之后,它也会给出'名称样式在当前上下文中不存在'。但重新启动程序后,它工作:)谢谢各位 – biox

回答

4

正如你所描述的,唯一的办法是添加在views文件夹你的web.config的以下部分的命名空间(或相应的父文件夹,如果你的观点是在不同的区域):

<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" /> 
     ... 
    </namespaces> 
    </pages> 

只需添加以下行:

<add namespace="System.Web.Optimization" /> 

您需要重建解决方案使其生效。

根据ASP.NET和Visual Studio的版本(也有版本之间的一些不兼容),你可能还需要:

  • 关闭并重新打开布局文件(.cshtml)。
  • 如果以前的项目不起作用,请重新启动Visual Studio。
+1

不要忘了关闭并重新打开布局。在将命名空间添加到web.config并删除“@using”之后,我清理并重建了解决方案,但仍然看到错误,直到我想重新打开它。 ;) –

+0

@JamesWilkins:你的意思是关闭并重新打开cshtml就足够了?相反,我有点激烈,重新打开VS。如果您确认重新启用cshtml就够了,我会在答案中加入它。 – Matthieu

+1

我只能说这就是我所做的,并且工作。我从来没有关闭VS。事实上,我只是继续编码。 ;)也许说重新打开该文件,并且只有在失败时才重新启动VS。与其他人相比,一个设置可能会变得古怪;不会让我感到惊讶。 ;) –