ServiceStack Razor Intellisense 在 SelfHost 中不工作

ServiceStack Razor Intellisense not working in SelfHost

我有 ServiceStack.Razor 被引用。

以下 razor 文件效果很好:

@model ServiceStack.Host.Operation

@Model.Name

但 IntelliSense(和 R# 代码分析)显示错误:"Cannot resolve symbol 'model'"

引用 Microsoft.AspNet.Mvc 使 Intellisense 工作,但 Razor 页面未编译。 这是因为 ServiceStack.Razor 包含 System.Web.Razor 程序集版本 3.0.0 而 Microsoft.AspNet.Mvc 需要一个 3.2.3,一个被另一个覆盖,发生程序集加载异常。

试图遵循这个答案: ServiceStack turn on Razor intellisense support without MVC

并添加 Web.config 但这给了我不同的错误: "Cannot access private field 'model' here"

如何在不中断应用程序的情况下使 Intellisense 工作?

不幸的是 VS.NET 2015 设计器不正确支持在自托管(即非 ASP.NET 项目)中编辑 Razor 页面,因此您将无法消除所有设计器错误,尽管您可以通过首先在 Razor 配置中添加 Web.config 来最大程度地减少问题,这是您可以使用的 Web.config template,您需要将 $safeprojectname$ 替换为项目的命名空间。 Web.config 对非 Web 项目的行为没有影响,它只是用来为 VS.NET 与 ASP.NET Web 项目耦合的智能感知提供提示。

而不是 @model 你会想要使用更明确的:

@inherits ViewPage<ServiceStack.Host.Operation>

这两个做同样的事情,但设计师更喜欢显式 @inherits