последовательность не содержит элементов в бритве

У меня есть вид бритвы, и я должен вернуть список клиентов:

@model IEnumerable<myapp.Models.customers>
@{
    ViewBag.Title = "customers";
}

@Model.First().Order.Name

Отображение сведений о клиенте работает нормально, это не проблема. Я хотел бы отобразить название Ордена один раз вверху. Отношение Заказа к Заказчику равно 1 ко многим, поэтому некоторые Заказы могут не иметь Заказчиков. Вот когда я получаю эту ошибку:

[InvalidOperationException: Sequence contains no elements]
   System.Linq.Enumerable.First(IEnumerable`1 source) +269

вопрос в том, как я могу проверить это в представлении Razor и отобразить удобное для пользователя сообщение?


person user603007    schedule 04.03.2014    source источник


Ответы (1)


Вы всегда можете оценить первый заказ, проверив, является ли заказ первого клиента нулевым или нет...

 @{
        if(Model.FirstOrDefault() != null && Model.FirstOrDefault().Order != null)
        {
            <span class="order-name">Model.First().Order.Name</span>
        }
        else
        {
            <span class="order-error">Error Message</span>
        }
    }
person Leo    schedule 04.03.2014
comment
Не вызовет ли это исключение, если FirstOrDefault() вернет null? - person Dawood Awan; 16.09.2015
comment
@DawoodAwan правда, так и будет. Только что обновил ответ, я предполагаю, что тогда это была опечатка - person Leo; 16.09.2015