当使用使用IEnumerable的MVC 3集合时,有没有办法让小查询工作来查找单个值?我一直在尝试一点点成功。
我有一组包含说明和设置的设置。问题是暴露其中一个,因为每个都是独一无二的。我尝试过这样的事情:
var appl = _service.GetSettings(id, app); //Call to service layer & repository
appl.Select(a => a.setting_value.Where(a.setting_name.StartsWith("Login")));
收效甚微(除非我遗漏了什么)。是否可以从可枚举集合中选择一个项目并将其传递给ViewBag或ViewData对象?我想做的事情如下:
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")));
并将此传递给视图,因为我有一个视图,现在将一个集合与单个值组合在一起。
以下似乎在视图中起作用:
Application Name @Html.TextBox("application_name", @Model.FirstOrDefault().app_name)
但我不确定这是否违反了关注点。我在错误的道路上吗?谢谢!
编辑:这就是我需要的。下面的答案让我非常接近+1 +1
ViewBag.Login = appl.Where(a => a.setting_name.StartsWith("Login")).FirstOrDefault().setting_value
答案 0 :(得分:2)
ViewBag.Login = appl.Select(a => a.setting_value.Where(a.setting_name.StartsWith("Login"))).FirstOrDefault();
这将选择与您的条件匹配的第一个对象并返回单个结果或null
答案 1 :(得分:1)
var appl = _service.GetSettings(id, app);
ViewBag.Login = appl
.Where(a => a.setting_name.StartsWith("Login"))
.FirstOrDefault();