【问题标题】:Visual Studio, Razor, BuildProviders and IntellisenseVisual Studio、Razor、BuildProviders 和 Intellisense
【发布时间】:2011-09-23 23:13:40
【问题描述】:

我正在尝试让 Intellisense 为非 ASP.NET 项目中的 razor 视图工作,并想了解 VisualStudio 的 Razor 编辑器和 BuildProviders 之间的关系。

作为背景,我正在 Manos(单 Web 服务器)之上编写一个框架,该框架使用 Razor 作为其视图引擎。我已经让这部分工作完美,但是 VS 中的 Intellisense 无法工作,给出从未知类型到未注册构建提供程序的一系列错误,具体取决于项目的输出 DLL 的放置位置。

我的项目是一个 .NET 类库,带有 .cshtml 文件(无构建操作)。基本 razor 视图类在单独的程序集(项目外部)中定义,可以在 GAC 中注册,但目前没有。

我已经阅读了这些文章:

听起来我需要编写自己的 BuildProvider,但找不到任何解释构建提供程序和 razor intellisense 之间关系的文档。

【问题讨论】:

  • 我是否理解您试图将 web.config 从另一个 MVC 项目拖放到您的类库项目中,但它没有工作?您采用了哪个 web.config:来自根目录的那个,还是来自 Views 子文件夹的那个?

标签: c# visual-studio-2010 razor buildprovider


【解决方案1】:

Razor 智能感知目前充其量是不稳定的。但是,如果您使用的是 VS SP1,它会稍微好一些。只要扩展名是 cshtml,web.config 解决方法(如您的第三个链接中所指出的)在类库中对我有用(没有尝试过 vbhtml,所以不能确定)。

也看看这里:http://razorpad.codeplex.com/ 与 LinqPad 类似,这将允许您提前测试您的剃须刀代码。

【讨论】:

    【解决方案2】:

    Razor 编辑器与 ASP.Net 运行时密切相关,实际上它实际上在后台运行 ASP.Net 以收集必要的运行时信息。

    我对获得真正保真 IntelliSense 的唯一建议是有点超级黑客。除了类库,您还可以使您的应用程序成为 Web 应用程序项目。 WAP 实际上只是一个类库,VS 可以从中托管一个网站。如果您清除所有额外的东西(Global.asax、web.config 等),您可能会得到您正在寻找的东西。这是一种解决方法,但有点牵强,但试一试,它可能会奏效:)

    【讨论】:

      猜你喜欢
      • 2015-10-13
      • 1970-01-01
      • 2023-03-30
      • 2011-07-18
      • 2018-03-22
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多