ASP.NET MVC: как справиться с нулевыми объектами в представлении? - PullRequest
5 голосов
/ 18 мая 2009

Должны ли объекты модели, которые идут к виду, проверяться на нулевое значение перед тем, как перейти к виду? А если ноль, создать фиктивный экземпляр? Или должен ли View проверить на null?

Ответы [ 4 ]

3 голосов
/ 18 мая 2009

Как насчет возврата другого представления, если объект нулевой?

if(object == null)
{
return View("notfound");
}
2 голосов
/ 18 мая 2009

Мое мнение таково, что шаблон Null Object является хорошей вещью & trade ;. Используя это, вы можете закодировать ваш View для работы с объектами Foo, и все они (включая нулевой) будут работать правильно.

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

0 голосов
/ 18 мая 2009

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

0 голосов
/ 18 мая 2009

Вам не нужно проверять наличие нулей. Если вы получаете свои данные в свой контроллер через список, он должен возвращать только фактические результаты в БД как объекты. Если записей нет, вы всегда можете проверить счетчик 0 в своем представлении и отобразить сообщение, как

<% if (ViewData.Model.Count == 0) { %>
    No results found.
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...