c# - index.g.cshtml 在哪里

标签 c# asp.net visual-studio asp.net-core razor

我正在努力完成本教程,ASP.Net Core Razor Pages ,但是(经常)当我构建解决方案时,我收到一个 CS0234 错误,指出文件 Index.g.cshtml.cd 中缺少命名空间,但这在哪里文件存在吗?

我试过了

  1. 所有构建/清理/重建解决方案选项。
  2. 我已经重启了 Visual Studio
  3. 我已经删除了 DEBUG 文件并重新启动了 VS,最后
  4. 我已经重新启动了我的电脑。 唯一可行的解​​决方案是删除整个解决方案/项目并重新开始。

肯定有解决办法吗? 你能帮忙吗?

最佳答案

如果错误提示 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/

相关文章:

c# - DataGridView合并

c# - 在c#中获取从base64和UTF8转换后的视频文件

java - 使页面的一部分在回发时保持完整

vb.net - VB 2010发送消息: sending binary data to another app

c# - 如何在 C# 中的警告框确定按钮上编写操作?

javascript - 如果未填写控件,则自定义验证器不会触发

asp.net - 我的 max-age header 来自哪里?

java - 100.000 个 vector 的高效比较

c++ - Visual Studio C 或 C++ 中的最大值

c# - 在 ASP.Net Web Api 2 中使用 PUT 动词上传文件