2015-06-05 5 views
1

Rookie Question. Итак, у меня есть IEnumerable Model, и, как вы видите, мой вопрос прост. Я просто хочу получить значение первого элемента в модели без повторения всей модели.Модель MVC IEnumerable без повторения

Поскольку это только один случай. Я не хочу повторять эту модель, чтобы получить от нее 1 Entity, и я бы тоже не хотел полагаться на ViewBag или ViewData для этого.

Возможно ли это?

Client = Model.FirstOrDefault().ClientID

объекта не задана ссылка на экземпляр объекта.

Я также попытался select()

+1

Итак, вы сказали нам, вы пробовали использовать 'FirstOrDefault()' , но вы не сказали нам, что произошло *. –

+0

FirstOrDefault() остановится после первого элемента, поэтому вы не повторяете все это. – jlew

+0

Вы получите исключение с нулевой ссылкой, если данных нет. Безопаснее использовать 'Model.First(). ClientID', который все равно будет бросать, если нет данных, но он создан для этого и сделан для улова. –

ответ

2

Чтобы смягчить неожиданные ошибки, сделать что-то вроде этого, на ваш взгляд:

@{ 
    var clientId = 0; 
    if (Model.Any()) 
    { 
     clientId = Model.First().ClientId; 
    } 
} 
@Html.ActionLink("Add PO", "Create", "POCorns", new {ClientID = clientID },null) 
+0

Я добавил пустой объект в свой контроллер. Я попробую это сейчас. – Aizen

+0

Спасибо, я просто контролирую ClientID 0 в Create Controller: D – Aizen

Смежные вопросы