"@ Model","@ Viewbag"和"@Url""在当前上下文中不存在"使用Visual Studio 11 Beta/Visual Studio 2012 RC时的Razor MVC3

Joh*_*n C 13 c# visual-studio-2012

我在Visual Studio 10中创建了一个MVC3应用程序.在编辑视图时,"@ Model","@ Viewbag"和"@Url"都显示为有效.

我最近安装了Visual Studio 11 Beta,当编辑(或创建)视图时,我得到"x在当前上下文中不存在"上述关键字的错误,显然没有智能感.

我已经安装了Visual Studio 2012 RC,希望它只是一个Visual Studio 11 Beta问题....它不是.自从在Visual Studio 2012 RC中运行它以来,我注意到"@Html"关键字存在,但是智能列表是有限的 - 任何与模型相关的东西(例如"@ Html.EditorFor()")和任何在"Render"家族遗失了.

如果我运行项目一切都很好.

现在,如果我在Visual Studio 11 Beta/2012 RC中创建一个新项目,则所有关键字都会被识别.

我需要在项目文件中编辑一些东西以使其正常工作吗?

编辑 - 更多答案,从我的评论中复制下面 对于升级到VS 2015的人,它不支持MVC 4,您需要将项目升级到MVC5.请参阅 - http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and- Web的API-2

MiB*_*iBu 16

将以下设置添加到MAIN web.config文件的appSettings部分:

<add key="webpages:Version" value="1.0.0.0"/>
Run Code Online (Sandbox Code Playgroud)

来自Connect:http://connect.microsoft.com/VisualStudio/feedback/details/732597/visual-studio-11-beta-razor-intellisense-not-working

  • 随着Visual Studio的发布版本(刚出来)我不得不删除网页1.0.0.0条目并返回使用<add key ="webpages:Version"value ="2.0.0.0"/>以获取IntelliSense回来了. (8认同)

小智 5

vs2015的更新;

在MAIN web.config中查找此元素

  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

并将"newVersion"参数放在webPages:version中

<add key="webpages:Version" value="3.0.0.0" />
Run Code Online (Sandbox Code Playgroud)