Объект модели является нулевым на странице aspx MVC - PullRequest
1 голос
/ 10 июня 2009

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 10 июня 2009

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

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

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

0 голосов
/ 10 июня 2009

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

<%= (Model ?? new Model()).Id &>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...