剃刀高亮显示停止工作

本文关键字:停止工作 显示 高亮 剃刀 | 更新日期: 2023-09-27 18:29:19

我有模块化的MVC门户插件应用程序。当我更改mvc应用程序的输出路径时,Razor高亮显示和intellisense停止在cshtml文件中工作。以前有人能面对这个问题吗?我还添加了构建后事件,将视图复制到自定义目录中

我有主要的"容器"MVC应用程序和模块(MVC项目)

主要的mvc应用程序和模块位于一个解决方案中

每个模块MVC应用程序上都有下一个选项:

Output Path :   ..'Container'bin'
Post build Event:   xcopy "$(ProjectDir)'Views" "..'Modules'$(ProjectName)'Views" /s /i /y

在这些操作之后,我的Razor智能化并突出显示停止在模块应用程序中工作。

剃刀高亮显示停止工作

我解决了我的问题。输出路径有问题。

我刚刚放置了默认的输出路径"bin''",并添加了生成后事件,将我的dll从这个文件夹复制到另一个文件夹中。

解决了它,并在这里写了博客。。。

http://mhammadchehab.com/wordpress/2013/12/enabling-intellisense-for-razor-in-class-library-mvc-5-razor-3-0/

*右键单击->管理Nuget软件包

*单击已安装的软件包。

*单击卸载。

*当你完成对MVC 5的在线搜索并安装库。

*右键单击您的项目并转到属性

*选择构建

*在配置中,选择所有配置。

*转到输出路径并键入"bin ''"

*清理您的项目并重新生成。

*请确保您的cshtml文件已关闭。

*重新打开您的视图文件并BOOOOOM它工作。

确保Visual studio project中的web.config文件包含以下行:

<configSections>
  <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  </sectionGroup>
</configSections>
<system.web.webPages.razor>
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="MyCustomHelpers" />
    </namespaces>
  </pages>
</system.web.webPages.razor>'

这些线条给你智能的感觉。

将输出路径更改为bin/是正确的answere,但我对其进行了一些扩展。创建一个支持intellisense的"vanilla"类库所需的步骤如下

创建或打开一个现有的类库项目(如果打开现有的类库,请确保删除MVC5 nuget包)

添加MVC(5.0)nuget包(右键单击解决方案资源管理器中的项目->管理nuget包->搜索MVC并安装"Microsoft ASP.NET MVC")

关闭所有打开的.cshtml文件

右键单击项目->属性->构建->将输出路径更改为"bin/"

将以下最小Web.config添加到类库项目的根目录(Webintellisense只需要配置文件。配置(通过Web.config)应该在托管ClassLibrary程序集的WebApplication中完成)

清洁并构建解决方案。

打开cshtml文件

web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
  </system.web> 
  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.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" />
        <!-- add other namespaces for views here -->
        <!-- e.g. your own project's, Lib.Views.Etc -->
      </namespaces>
    </pages>
  </system.web.webPages.razor>
</configuration>

我也刚刚在博客上写过这件事http://thetoeb.wordpress.com/2014/01/05/enabling-mvc5-intellisense-in-a-classlibrary-project/

我按如下方式解决了它。在网络中。配置,添加此:

<appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
  </appSettings>

作为参考,webpages:Version这样做:

如果web.config文件中缺少密钥,例如默认Razor V2/V3网站,VS将使用bin目录的剃刀dll版本来确定设计时要加载的剃刀引擎dll。

https://stackoverflow.com/a/27918972/3146