11

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

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

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

我已经阅读了这些文章:

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

4

2 回答 2

1

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

还可以在这里查看:http: //razorpad.codeplex.com/ 与 LinqPad 类似,这将允许您提前测试您的 razor 代码。

于 2011-06-29T03:34:52.973 回答
1

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

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

于 2011-08-07T05:00:04.643 回答