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

控制器向视图传递Student列表时Model为空,报NullReferenceException如何解决?

问题原因及解决步骤

核心问题是视图中的@page标记与MVC控制器模式冲突:@page是Razor Pages专属标记,添加后该视图会被识别为独立的Razor Page,不再接收MVC控制器传递的Model,导致Model为null,触发NullReferenceException。

解决步骤如下:

  1. 移除视图顶部的@page标记
    MVC视图不需要这个标记,删除后视图会恢复为MVC模式,正常接收控制器传递的Model。

  2. 修正Model的命名空间匹配
    视图中@model声明的命名空间要与Student类的实际命名空间一致:
    你的Student类在Models命名空间下,因此视图中的Model声明应改为:

    @model List<Models.Student>
    

    (如果项目根命名空间是MyApp,则改为@model List<MyApp.Models.Student>,确保与类的完全限定名一致)

  3. 确认控制器的命名空间引用
    在控制器类顶部添加必要的命名空间引用,确保SomeStudents.Students能被正确识别:

    using Data;
    using Models;
    

修改后的视图代码示例:

@model List<Models.Student>

<div>
@{ 
    string sHtml = TestPageView.GetHtml(Model);
}

@Html.Raw(sHtml)
</div>

完成以上修改后,控制器传递的学生列表就能正确绑定到视图的Model,访问时就不会触发空引用异常了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:05:01