g.i.cs文件类未更新,访问Questionnaire类Questions属性报错求助
解决‘Questionnaire’不包含‘Questions’定义的问题
首先咱们先揪出最直接的错误根源——你只声明了Questionnaire类型的变量,但完全没有实例化对象!
看你这段代码:
Questionnaire questionnaire; // 只是声明了变量,还没创建实际的对象实例 protected override async Task OnInitAsync() { questionnaire.Questions = new List<Question>(); // 此时questionnaire是null,自然找不到属性 }
第一步:修复对象实例化问题
你需要先创建Questionnaire的实例,再去访问它的Questions属性,两种写法都可以:
// 写法一:声明变量时直接实例化 Questionnaire questionnaire = new Questionnaire(); protected override async Task OnInitAsync() { questionnaire.Questions = new List<Question>(); } // 写法二:在OnInitAsync方法内先初始化对象 Questionnaire questionnaire; protected override async Task OnInitAsync() { questionnaire = new Questionnaire(); // 先创建实例 questionnaire.Questions = new List<Question>(); }
第二步:解决g.i.cs文件未更新的问题
g.i.cs是IDE自动生成的代码文件(通常和Razor视图编译相关),出现未更新的问题大多是编译缓存或项目同步异常导致的,试试这些操作:
- 清理解决方案:点击Visual Studio顶部菜单的
生成->清理解决方案 - 重建项目:清理完成后,点击
生成->重建解决方案 - 手动删除bin/obj文件夹:找到项目目录下的bin、obj文件夹,删除后重新生成项目
- 重启Visual Studio:有时候IDE的缓存会卡住,重启后再重新编译
另外还要检查两个细节:
- 确保
Questionnaire类所在的命名空间已经被正确引用到当前页面的代码文件中 - 确认
Questionnaire类本身没有语法错误(如果类编译失败,也会导致找不到属性的错误)
内容的提问来源于stack exchange,提问作者Bassie
相关产品推荐
相关产品推荐

