方案: 我有一个页面,其中包含一个下拉列表和一个表,其中包含一个详细信息列表,该列表基于下拉列表更改时在下拉列表中选择的值。
现在,在第一次加载页面时,下拉列表包含一个空白值,后跟其他值。所以第一次在'model'对象中没有任何值,因此在渲染数据时,比如'model.ID',它会失败,因为'model'是null。
目前我正在通过在aspx页面中编写这段代码来处理这种情况
if (Model != null)
{
//DisplayData
Model.ID
}
这是正确的方法吗?还是在MVC中有更优雅的方式?
答案 0 :(得分:3)
如果可以,我会考虑将您的视图移交给一个新的空模型,而不是null。这将使您不必在任何地方进行空检查,实际上,什么是没有模型的View?
如果那是不可能的(您的模型很复杂且具有您不想显示的不可空字段),那么请考虑更改页面的工作流程,以便显示模型的部分(可能是部分视图)不是直到用户进行初始选择后才会显示。
如果那也不可能,那么我真的不会说你的方法有多大错误,除了编程很乏味。
答案 1 :(得分:0)
我认为更优雅的方式是使用“默认”或“空”模型:
<%= (Model ?? new Model()).Id &>