Объект модели имеет значение null на странице aspx MVC

Сценарий: у меня есть страница, которая содержит раскрывающийся список и таблицу, содержащую список сведений на основе значения, выбранного в раскрывающемся списке при изменении раскрывающегося списка.

Теперь при загрузке страницы выпадающий список содержит пустое значение, за которым следуют другие значения. Таким образом, впервые в объекте «модель» не будет никаких значений, поэтому при рендеринге данных, скажем, «model.ID», произойдет сбой, потому что «модель» равна нулю.

В настоящее время я обрабатываю этот сценарий, написав этот фрагмент кода на странице aspx.

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

Это правильный способ сделать это или есть более элегантный способ в MVC?


person Miral    schedule 10.06.2009    source источник


Ответы (2)


Я бы подумал о том, чтобы передать вам новую пустую модель, если вы можете, а не нулевую. Это избавит вас от необходимости везде иметь нулевые проверки, и действительно, что такое представление без модели?

Если это невозможно (ваша модель сложна и содержит необнуляемые поля, которые вы не хотите отображать), рассмотрите возможность изменения рабочего процесса страницы, чтобы часть, отображающая модель (возможно, частичное представление), не отображалась. пока пользователь не сделает первоначальный выбор.

Если это тоже невозможно, то на самом деле я бы не сказал, что в вашем подходе есть что-то неправильное, кроме того, что его утомительно программировать.

person womp    schedule 10.06.2009

Я думаю, что более элегантный способ - работать с моделью "по умолчанию" или "пустой":

<%= (Model ?? new Model()).Id &>
person eu-ge-ne    schedule 10.06.2009