我正在努力完成本教程,ASP.Net Core Razor Pages ,但是(经常)当我构建解决方案时,我收到一个 CS0234
错误,指出文件 Index.g.cshtml.cd
中缺少命名空间,但这在哪里文件存在吗?
我试过了
- 所有构建/清理/重建解决方案选项。
- 我已经重启了 Visual Studio
- 我已经删除了 DEBUG 文件并重新启动了 VS,最后
- 我已经重新启动了我的电脑。 唯一可行的解决方案是删除整个解决方案/项目并重新开始。
肯定有解决办法吗? 你能帮忙吗?
最佳答案
如果错误提示 xxx.g.cshtml.cs
中缺少 using 指令或命名空间,这通常意味着 View 中直接有一个指令 (.cshtml
或 .vbhtml
),编译器无法解析。
在我的例子中,我在局部 View 中有以下语句:
@inject UserManager<AppUser> UserManager
然后我将 Web 应用程序 Namespace.Web.AppUser
中的 AppUser 类重构为 Namespace.Entities.AppUser
,这导致了该错误。
有多种方法可以解决这个问题。 最简单的方法是使用完全限定的类型命名空间:
@inject UserManager<Namespace.Entities.AppUser> UserManager
如果它在另一个项目中,请不要忘记添加对另一个项目的引用。 或者:添加 using 语句:
@using Namespace.Entities;
或者:将上面的 using 语句添加到您的 ~\Views\_ViewStart.cshtml
。这将使该类在所有 View 中可用。
关于c# - index.g.cshtml 在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52463031/