Razor页面访问非空局部变量时触发NullReferenceException求助
生产环境Razor页面NullReferenceException疑难问题
问题现象
- 在Razor页面的
@{ ... }代码块中可正常访问变量,但在@(...)上下文访问同一变量时抛出NullReferenceException - 已将模型属性访问结果存入确保非空的局部变量
studentName,甚至通过?? ""兜底,但在@studentName处仍触发异常 - 最初直接使用
@(sibling.Student)时出现异常,已添加断言确保相关变量非空 - 问题仅在生产环境必现,本地Debug、Release模式,以及降级到.NET 6、部署Debug构建均无法复现
- 堆栈跟踪仅指向异常行,生成
studentName的代码未抛出任何异常
相关代码
@foreach (var sibling in Model.SiblingApplications) { string studentName = sibling.Student.ToString() ?? ""; <div class="sibling half line"> <div class="question-block grow"> <div class="label">Name</div> @* NullReferenceException on the next line! *@ <div class="value">@studentName</div> </div> </div> }
堆栈信息
System.NullReferenceException: Object reference not set to an instance of an object. at ProjectName.Pages.Forms.Pages_Forms_RegistrationForm.ExecuteAsync() in X:\ProjectPath\Pages\Forms\RegistrationForm.cshtml:line 240 ...
内容的提问来源于stack exchange,提问作者Mahmoud Al-Qudsi
相关产品推荐
相关产品推荐

