【问题标题】:Razor engine namespace not found未找到 Razor 引擎命名空间
【发布时间】:2016-08-26 16:45:57
【问题描述】:

我使用 AspNetCore 创建了一个普通的 Windows 控制台自托管应用程序,但无法加载要加载的视图。每当 Razor 引擎尝试渲染页面时,都会返回一个错误,指示缺少多个命名空间,例如

找不到类型或命名空间名称“System”(您是 缺少 using 指令或程序集引用?)

使用系统;

我尝试使用

添加 project.json
{
  "buildOptions": {"preserveCompilationContext": true }
}

但结果还是一样。

【问题讨论】:

  • 你能把依赖贴在你的project.json文件上吗?
  • 你也可以查看这个答案:stackoverflow.com/questions/35832362/…
  • file 中没有依赖项,正如我所说的它的普通 Windows 控制台应用程序不是 net core 控制台应用程序。使用 NuGet 添加的所有依赖项。我什至不确定它是否应该真正使用 project.json。一些错误无法定义使用“动态”的类或成员,因为找不到编译器所需的类型“System.Runtime.CompilerServices.DynamicAttribute”。您是否缺少参考资料?
  • 你在用这个吗:razorengine.codeplex.com ?
  • 不,我用的是 AspNetCore 提供的引擎

标签: asp.net-mvc asp.net-core


【解决方案1】:

命名空间已全部更改为ASP.NET Core

ASP.NET Core 已删除对 System 命名空间的依赖。如果你在你的项目中看到它,你正在寻找 ASP.NET 4 或更早的代码,你会得到编译错误。

Razor 命名空间现在位于 Microsoft.AspNetCore.Razor 命名空间中。

如果您要从早期的 ASP.NET 版本升级到 ASP.NET Core,那么我建议您使用默认项目模板作为起点,因为有很多更改。

【讨论】:

  • 正如我所说,我不使用核心项目模板。我创建了一个新的控制台应用程序并从 nuget 添加 AspNetCore。我的项目甚至没有 project.json 文件。代码本身没有显示任何丢失的东西,我正确地获得了对控制器的 Web Api 和 MVC 调用。唯一的问题是当 Razor 渲染视图时,会输出这些异常而不是渲染视图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-16
  • 2019-11-20
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
相关资源
最近更新 更多