.NET Web App出现CS0246错误:找不到AddTeacherPage等类型的解决方法
解决Razor页面CS0246找不到页面模型类的问题
1. 确认对应的Page Model类已创建
你Razor页面里@model AddTeacherPage指定的类,必须有对应的.cshtml.cs代码文件(比如AddTeacher.cshtml.cs),里面要定义继承自PageModel的类:
public class AddTeacherPage : PageModel { // 这里放页面的逻辑代码,比如绑定属性、请求处理方法 }
如果这些.cshtml.cs文件缺失或未创建,直接补充即可。
2. 核对命名空间是否一致
Razor页面的命名空间默认与文件夹结构挂钩(比如Pages/Teachers下的页面,命名空间为StudentAndClassWebApp.Pages.Teachers),要保证.cshtml.cs文件的命名空间和Razor页面的隐含命名空间完全匹配。
若不确定,可以在Razor页面顶部显式声明命名空间:
@namespace StudentAndClassWebApp.Pages.Teachers
同时将.cshtml.cs文件的命名空间修改为一致内容。
3. 清理缓存并重新生成项目
Razor源生成器的缓存可能出现异常,导致g.cs文件无法找到对应类,按以下步骤操作:
- 右键项目 → 清理
- 手动删除项目根目录下的
bin和obj文件夹 - 右键项目 → 重新生成
4. 检查项目配置文件
打开项目的.csproj文件,确认已包含Razor页面和Page Model的引用配置:
<ItemGroup> <Pages Include="Pages/**/*.cshtml" /> <PageModels Include="Pages/**/*.cshtml.cs" /> </ItemGroup>
若缺失这段配置,手动添加后保存即可。
5. 检查@model指令的拼写
C#是大小写敏感语言,确保@model后面的类名拼写、大小写与代码文件中的类完全一致,比如不要把AddTeacherPage误写为AddTeacherModel。
内容的提问来源于stack exchange,提问作者Emir Bolat
相关产品推荐
相关产品推荐

