【问题标题】:Razor Pages app believes Pages Namespace doesn't exist anymoreRazor Pages 应用程序认为 Pages 命名空间不再存在
【发布时间】:2021-12-27 21:29:09
【问题描述】:

我不确定如何对其进行分类,因为我不认为它是一个程序集引用。

一直在构建剃须刀页面应用程序 .Net 6.0,一切都很好。上周发布到 Azure 以获取反馈,今天回来发现项目无法构建。

我的每个视图文件都收到此错误

CS0234  The type or namespace name 'Pages' does not exist in the namespace
'Timesheet.Pages.Timesheet' (are you missing an assembly reference?)

不知道问题出在哪里,Pages 文件夹肯定仍然存在,并且子文件夹中的任何文件都在错误消息中显示正确的路径,但都说 Pages 不存在。我什至通过右键单击 pages 文件夹添加了一个带有 VS 的测试剃须刀页面,生成的视图文件显示相同的错误。

解决方案有 2 个项目

解决方案 - 时间表

项目 1(类库)- 数据访问

项目 2(ASP.Net Web 应用程序)- 时间表

我不确定它是否会有所不同,但在当前未在 VS 中打开的所有视图的错误消息中,提到的文件实际上是扩展名为 cshtml.g.cs 的视图文件,在我看来,这听起来像是背后的虚拟代码.

因此,如果 test.cshtml 未打开,则错误针对文件 test.cshtml.g.cs,而如果文件已打开,则错误针对 test.cshtml。所有错误都报告在第 2 行,这是模型声明,例如 @model Timesheet.Pages.TestModel

【问题讨论】:

    标签: c# asp.net razor


    【解决方案1】:

    我似乎找到了解决方案,但我不明白为什么它会起作用,希望能得到解释。

    从模型声明中删除解决方案名称可以清除错误,例如从上面

    @model timesheet.Pages.TestModel 变为 @model Pages.TestModel

    由于它不在子文件夹中,它甚至可以变成@model TestModel,类似于声明索引和隐私的方式。

    有人能解释一下为什么在将解决方案发布到 Azure 之后,我现在需要重构所有视图文件以更改此声明。我有其他当前未发布到 azure 的 webapps 在模型声明中具有解决方案名称,并且它们构建良好。所有人都使用 .Net 6.0,所以我怀疑它是一种框架风格,但如上所述,我没有解释,所以感谢任何能解释的人。

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 2021-07-27
      • 1970-01-01
      • 2018-07-07
      • 2021-04-01
      • 1970-01-01
      • 2019-12-26
      • 2018-10-23
      • 1970-01-01
      相关资源
      最近更新 更多