1

我正在将 .net 框架网络迁移到 .netcore

移动“视图”文件夹时遇到问题。似乎每个剃须刀页面都带有 @inherits ViewPage<TModel>

我收到一个错误"The type or namespace 'ViewPage<>' could not be found (are you missing a using directive or an assembly reference?).

我已经在我的项目中安装了 ServiceStack.Razor 和 ServiceStack.Mvc nuget 包,但它无法在 Views 文件夹中识别它。

在我的 _ViewImports.cshtml 上,我还添加了 @using 包引用

此外,我正在使用 ServiceStack.Razor 中的“Request.[]”,但它无法识别 Request。

关于我所缺少的任何想法?我应该将其更新为 @model 吗?当我更新到@model 时,它工作正常,但“请求”仍然无法识别

4

1 回答 1

0

与 ServiceStack 中的大多数功能可以移植和多目标以支持 .NET Framework 和 .NET Core 不同,ServiceStack.Razor 与 System.Web 的耦合不能支持 .NET Core

相反,.NET Core 的 ServiceStack.Razor被重写为在 ASP.NET Core MVC 之上工作,该 MVC 仅包含在ServiceStack.Mvc包中,而不是仅包含在 .NET Framework 的ServiceStack.Razor包中(不应在 . NET 核心)。

大多数语法保持不变,因此移植仍需要少量工作,如 ServiceStack.Razor 的 Razor Rockstars .NET Core 移植与原始 .NET Framework 相比:

但鉴于它是在 ASP.NET Core MVC 之上工作的重写,我不会尝试转换现有的 ServiceStack.Razor 项目,而是从一个空的新Razor项目开始,因此它从一个众所周知的工作配置开始,并且然后将现有的 Razor 视图和服务复制到新项目中。

您可以通过以下任一命令行创建剃须刀项目:

$ x new razor ProjectName

或使用 ServiceStack 的在线项目模板创建器:https ://servicestack.net/start

于 2021-07-23T18:26:55.427 回答