剃刀高亮显示停止工作
本文关键字:停止工作 显示 高亮 剃刀 | 更新日期: 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