【问题标题】:Model object is null in MVC's aspx pageMVC 的 aspx 页面中的模型对象为空
【发布时间】:2023-03-19 02:01:02
【问题描述】:

场景: 我有一个包含下拉列表的页面和一个包含详细信息列表的表格,该列表基于更改下拉列表时在下拉列表中选择的值。

现在在第一次加载页面时,下拉列表包含一个空白值,后跟其他值。所以第一次在'model'对象中不会有任何值,所以当渲染数据时,比如'model.ID',它会失败,因为'model'是空的。

目前我正在通过在 aspx 页面中编写这段代码来处理这种情况

if (Model != null)
{
   //DisplayData
   Model.ID
}

这是正确的方法还是在 MVC 中有更优雅的方法?

【问题讨论】:

    标签: asp.net-mvc binding model


    【解决方案1】:

    如果可以,我会考虑为您的视图提供一个新的空模型,而不是 null。这将使您不必到处进行空检查,实际上,没有模型的视图是什么?

    如果这是不可能的(您的模型很复杂并且有您不想显示的不可为空的字段),那么请考虑更改页面的工作流程,以便显示模型的部分(可能是部分视图)是'直到用户做出初始选择后才会显示。

    如果这也不可能,那么真的,我不会说你的方法有很多错误,只是编程很乏味。

    【讨论】:

      【解决方案2】:

      我认为更优雅的方式是使用“默认”或“空”模型:

      <%= (Model ?? new Model()).Id &>
      

      【讨论】:

        猜你喜欢
        • 2016-02-18
        • 2018-01-07
        • 2015-06-18
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 1970-01-01
        • 1970-01-01
        • 2015-10-13
        相关资源
        最近更新 更多