Вопрос по asp.net-mvc, foreach – Как можно избежать исключения NullReferenceException в цикле foreach в представлении, когда моя модель пуста?
Я получаю & quot; NullReferenceException не было обработано кодом пользователя & quot; ошибка со следующим кодом в моем представлении, когда я передаю нулевое значение через мой контроллер. Есть ситуации, когда я хочу передать нулевое значение, но я не хочу, чтобы в этом случае возникала ошибка. На что я должен изменить свой код?
Первоначально мой код был:
@foreach (var item in Model.MyModelStuff)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Bla.Title)
</td>
<tr>
}
Я пробовал следующее безуспешно:
@foreach (var item in Model.MyModelStuff.Where( item => item.MyModelStuff != null))
etc. . .
Как мне изменить код, чтобы он обрабатывал ноль, не выдавая ошибку? Я прочитал, что мне может понадобиться вернуть пустую коллекцию моей модели (?), Как мне поступить, если это действительно необходимо?
Если я правильно понимаю, ваша коллекция пуста.
Коллекция никогда не должна быть нулевой, как вы сказали, что вместо этого вы должны вернуть пустую коллекцию и не допустить повреждения вашей коллекции, не раскрывая реальную коллекцию:
public IList<Employee> Employees
{
get;
private set;
}
И инициализировать вашу коллекцию внутри конструктора
this.Employees = new List<Employee>();
Честно говоря, я думаю,null
модель плохой выбор. Но если вы настаиваете, просто добавьтеif
проверять:
@if (Model != null) {
foreach (var item in Model.MyModelStuff)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Bla.Title)
</td>
<tr>
}
}