2

我能够创建 ASP.NET MVC 的自定义构建并在 Web 应用程序中使用它,但是,我似乎无法弄清楚如何让 Razor 智能感知正常工作。

如果您按照以下步骤操作,Razor 智能感知将只显示网页信息,而不会显示其他信息(HTML 帮助程序等)。

我正在使用 VS 2012。

这是我到目前为止所做的:

  1. 我克隆了最新的ASP.NET Web Stack
  2. 打开Runtime.sln并构建解决方案
  3. 创建了一个新的 ASP.NET MVC 4 (.NET 4.0) Web 应用程序
  4. 删除了System.Web.MvcSystem.Web.RazorSystem.Web.WebPages、的现有引用System.Web.WebPages.RazorSystem.Web.WebPages.Deployment并在步骤 #2 中添加了对已构建程序集的引用。
  5. ~/Views/Web.config, 替换System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35System.Web.WebPages.Razor
  6. 此外,替换System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35System.Web.Mvc
  7. 从以下内容中删除web.config

    <runtime>
        <assemblyBinding xmlns="urn:schemasmicrosoftcom:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
    </runtime>
    
4

1 回答 1

1

如果您正在寻找 VS 2012 中对视图的智能感知支持,以及控制器文件夹和视图文件夹的右键单击上下文菜单(添加控制器和添加视图的快捷方式),那么您需要打开 .csproj 文件您的 Web 项目并手动对其进行编辑以包含 MVC 项目类型 GUID。这就是 VS 实际上用来决定你得到什么类型的智能感知(除其他外)。

具体来说,您要查找的 .csproj 文件的 xml 标记是:

<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

您应该缺少 GUID 值

{E3E379DF-F4C6-4180-9B81-6769533ABE47}

祝你好运!

于 2013-01-29T15:41:18.917 回答