向 ViewBag 添加了新属性。从 Visual Studio 运行时有效,但实时版本引发无法对 null 引用执行运行时绑定

Added new property to ViewBag. Works when ran from Visual Studio, but live version throws Cannot perform runtime binding on a null reference

提问人:jpb103 提问时间:2/3/2023 最后编辑:jpb103 更新时间:2/4/2023 访问量:35

问:

我有一个 Intranet 站点,我在其中向 ViewBag 添加了一个新属性。当我通过Visual Studio在IIS Express中运行时,我的更改工作正常,但是当我更新实际网站(在测试中)时,它会抛出“无法对空引用执行运行时绑定”

所以我知道我引用的 ViewBag 属性在这一点上必须为 null,但我不明白如何。我正在控制器中初始化它。下面是引发错误的位置:

@if (ViewBag.FRCP.Count > 0)

这是我在控制器中设置值的地方:

//Fatal Risk Control Protocols
            List<Documents> FRCPLst = (from x in db.Documents
                                    where x.DocumentTypeId == 29
                                    orderby x.DocumentTitle
                                    select x).ToList();
            ViewBag.FRCP = FRCPLst;

这是在类中的方法中,它是类的扩展。ActionResult Index()HomeControllerBaseController

我从以前担任我角色的人那里继承了这个 Intranet 站点,而且我对 MVC 非常陌生,因此如果需要更多信息,请告诉我。

C# 模型视图控制器 Razor NullReferenceException ViewBag

评论

1赞 Arturs Mednis 2/4/2023
如果您在 IISExpress 上工作,那么问题似乎不在于代码,而在于部署。您究竟是如何更新内部网网站的?您是否手动将所有视图和 dll 文件复制到服务器?也许你忘记了一些文件?
0赞 jpb103 2/4/2023
我怀疑你是对的。在团队资源管理器的“更改”选项卡中显示更改的唯一文件是我所做的一些更改,但这一定是 VS 的更改自动检测不会拾取的内容。如果你是对的,我会做一次更彻底的更新问题。

答:

0赞 jpb103 2/4/2023 #1

答案由 Arturs Mednis 提供。这是一个部署问题。我在部署代码时错过了一个或多个文件。