You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 5项目同命名空间下不同来源Model引用规则差异原因问询

问题根因

你遇到的是C#的命名空间就近匹配规则导致的命名冲突,和T4生成/手动创建类的方式没有任何关系:

  • 你当前Razor页面后台类的命名空间是 MyApp.Pages.ClassWeek,命名空间的最后一段名称正好和 MyApp.Models 下的 ClassWeek 类完全重名
  • 当你在这个命名空间下直接写 ClassWeek 时,编译器会优先将其识别为 MyApp.Pages.ClassWeek 这个命名空间本身,而不是你要引用的Model类,因此必须显式加 Models. 前缀来明确指定目标类的所属命名空间
  • 而 ParticipatingSchool 没有和当前上下文中的任何命名空间、类、接口等名称重复,所以可以直接使用。
解决方法(可选)

如果不想每次都加前缀,可以在页面代码的using段加别名声明即可:

using ClassWeek = MyApp.Models.ClassWeek;

声明后你就可以直接用 ClassWeek 指代Model类,不需要再加前缀。

内容的提问来源于stack exchange,提问作者Norbert Norbertson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:09:03