【问题标题】:Upgrade ASP.net MVC2 to MVC4 Razor views intellisense not working将 ASP.net MVC 2 升级到 MVC 4 Razor 视图智能感知不起作用
【发布时间】:2015-07-13 11:32:17
【问题描述】:

我已将我的 ASP.net MVC 2 应用程序升级到带有 VS 2013 社区版的最新 MVC 4。

一切都非常完美,一切正常,除了一件烦人的事情我尝试了很多,但我没有找到任何解决方案。

在我的 razor 视图中,它显示样式、脚本、Html.RenderPartial 如下:

当前上下文中不存在名称“脚本”

在运行时我完全没有问题,只有在 Visual Studio 中修改视图时:

http://i.stack.imgur.com/WPAWJ.png

我尝试在 web.config 文件中添加命名空间(根目录和视图中的命名空间),但这也无济于事,我有以下配置:

根 web.config:

<pages>
  <namespaces>
    <add namespace="System.Web.Helpers" />
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization" />
    <add namespace="System.Web.Routing" />
    <add namespace="System.Web.WebPages" />
    <add namespace="System.Linq" />
    <add namespace="System.Collections.Generic" />
    <add namespace="Telerik.Web.Mvc.UI" />
  </namespaces>
</pages>

查看 web.config:

  <system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.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.Optimization"/>
    <add namespace="System.Web.Routing" />
  </namespaces>
</pages>

我尝试重新启动 Visual Studio 很多,重新附加并重新附加项目但没有成功:(

任何建议或帮助真的很受欢迎,因为我会将我的整个项目从 aspx/ascx 转换为 cshtml

【问题讨论】:

  • 安装Microsoft.AspNet.Web.Optimization nuget 包
  • 有很多关于此的帖子,但最好的选择之一是在 ASP.NET MVC 4 中创建一个新项目并将所有文件移动到新解决方案中。不幸的是,每个 ASP.NET 版本都会更改配置文件、引用等,这使得升级变得困难。
  • @too_cool 该软件包已安装:“Microsoft.AspNet.Web.Optimization 1.1.3”已安装。
  • @FranciscoGoldenstein 是的,我看到很多关于升级问题的不同帖子,但我试图避免创建另一个项目 :( 也许这是我需要更改或添加的小东西
  • 检查两个 web 配置,一个在项目的根目录中,一个在 Views 文件夹中。验证每个参考的版本并将其与 MS 的文档进行比较。

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

试试这个

@section Scripts{
    <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/jqueryval")"></script>
}

【讨论】:

  • 我仍然需要添加名称空间,这不会显示任何错误:@System.Web.Optimization.Styles.Render("~/Assets/css/style") 但这会显示错误: @Styles.Render("~/Assets/css/style") 都很好用。
  • @MohamedNoor 还有什么我可以帮忙的吗?
  • 感谢你的帮助,但我想我会去一个新项目;-(
猜你喜欢
  • 1970-01-01
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 2016-10-16
  • 1970-01-01
  • 2012-11-30
相关资源
最近更新 更多