Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

asp.net mvc 3 razor get one element from IEnumerable

I my view model(LIST) looks like this:

public class ConversationModel 
    {
        public int ID { get; set; }
        public string Body { get; set; }
        public DateTime Datetime { get; set; }
        public string Username { get; set; }
        public string ImgUrl { get; set; }
        public string ToUserID{ get; set; }
    }

this is my view

@model IEnumerable<NGGmvc.Models.ConversationModel>

how i can get ToUserID on current postion? something like this

@Model[0].ToUserID

Thanks

like image 498
Irakli Lekishvili Avatar asked May 15 '12 10:05

Irakli Lekishvili


2 Answers

You should be able to do:

@Model.First().ToUserID

Note, you may want to check whether there are any items in the enumerable first as if there aren't, then First() will return null

(Note, because you had @Model[0] in your question, I assume you are specifically trying to get the first value. I may have the wrong end of the stick, in which case Jakub's answer should sort you out!)

like image 69
AdaTheDev Avatar answered Sep 28 '22 12:09

AdaTheDev


You should be able to use the following:

@Model.First().ToUserID

However, if your model will only ever reference the first element of the enumeration in the view, I would recommend that you only pass that element to the view.

For example:

@model ConversationModel

@Model.ToUserID

And in the controller only pass the first element that is required:

List<ConversationModel> conversationList = //your conversation model initialisation code
return View(conversationList.First());
like image 27
Dangerous Avatar answered Sep 28 '22 13:09

Dangerous