模型对象在MVC的aspx页面中为null

时间:2009-06-10 16:05:31

标签: asp.net-mvc binding model

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

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

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

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

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

2 个答案:

答案 0 :(得分:3)

如果可以,我会考虑将您的视图移交给一个新的空模型,而不是null。这将使您不必在任何地方进行空检查,实际上,什么是没有模型的View?

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

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

答案 1 :(得分:0)

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

<%= (Model ?? new Model()).Id &>
相关问题