开发者

Selecting single items from MVC enumerable models

when using a MVC 3 collection that uses IEnumerable, is there a way to make small queries work to find single values? I've been experimenting with little success.

I have a collection of settings that have descriptions and settings. The problem is exposing one of them, as each is unique. I've tried something like this:

var appl = _service.GetSettings(id, app); //Call to service layer & repository
appl.Select(a => a.setting_value.Where(a.setting_name.StartsWith("Login")));

With little success (unless I'm missing something). Is it possible to select one item from an enumerable collection and either pass it to a ViewBag or ViewData object? What I would like to do is something like the following:

var appl = _service.GetSettings(id, app); //Call to service layer & repository
ViewBag.Login = appl.Select(a => a.setting_value.Where(a.setting_name.StartsWith("Login")));

And pass this to the view, since I have a view that now combines a collection with single values.

The following seems to work within the view:

Application Name @Html.TextBox("application_name", @Model.FirstOrDefault().app_name)

But I'm not sure if this violates separation of concerns. Am I on the wrong path here? Thank you!

EDIT: He开发者_如何学JAVAre is what I needed. The answers below got me very very close +1 +1

ViewBag.Login = appl.Where(a => a.setting_name.StartsWith("Login")).FirstOrDefault().setting_value


ViewBag.Login = appl.Select(a => a.setting_value.Where(a.setting_name.StartsWith("Login"))).FirstOrDefault();

This will select the first object that matches your criteria and return a single result or null


var appl = _service.GetSettings(id, app);
ViewBag.Login = appl
    .Where(a => a.setting_name.StartsWith("Login"))
    .FirstOrDefault();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜