Asp.net mvc 在foreach循环中获取值
我试图列出所有的“Usergroups”,如果“UsergroupPrices”中存在一个值,则在文本框中显示它。但我不知道如何把握价值Asp.net mvc 在foreach循环中获取值,asp.net-mvc,linq,entity-framework,Asp.net Mvc,Linq,Entity Framework,我试图列出所有的“Usergroups”,如果“UsergroupPrices”中存在一个值,则在文本框中显示它。但我不知道如何把握价值 <% foreach (var item in Model.Usergroups) { var price = Model.BookingObject.UsergroupPrices.Where(x => x.UsergroupID == item.Usergrou
<% foreach (var item in Model.Usergroups)
{
var price = Model.BookingObject.UsergroupPrices.Where(x => x.UsergroupID == item.UsergroupID).Select(x => x.Price);
%>
<tr>
<td><%= Html.Hidden("UsergroupIDPrice", item.UsergroupID) %><%= item.UsergroupName %>:</td>
<td><%= Html.TextBox("UsergroupPrice", price) %></td>
</tr>
<% } %>
x.UsergroupID==item.UsergroupID)。选择(x=>x.Price);
%>
:
价格是十进制的,如果用户组没有任何价格,则可能为空
短暂性脑缺血发作
/Lasse您需要选择一条记录:
var price = Model
.BookingObject
.UsergroupPrices
.Where(x => x.UsergroupID == item.UsergroupID)
.FirstOrDefault(x => x.Price);
然后您可以测试price是否为null
话虽如此,我必须说你所做的是错误的。获取数据不是视图的责任。这应由控制器完成。控制器应填充视图模型并将此模型传递给视图。此视图模型包含视图所需的所有必要属性,因此您只需在视图中显示它们这样的代码不属于视图
因此,我强烈建议您将此逻辑导出到控制器中,因为现在您违反了MVC模式。您需要选择一条记录:
var price = Model
.BookingObject
.UsergroupPrices
.Where(x => x.UsergroupID == item.UsergroupID)
.FirstOrDefault(x => x.Price);
然后您可以测试price是否为null
话虽如此,我必须说你所做的是错误的。获取数据不是视图的责任。这应由控制器完成。控制器应填充视图模型并将此模型传递给视图。此视图模型包含视图所需的所有必要属性,因此您只需在视图中显示它们这样的代码不属于视图
因此,我强烈建议您将此逻辑导出到控制器中,因为您现在正在违反MVC模式。我怀疑您只是在寻找
Single
或者可能是SingleOrDefault
:
var price = Model.BookingObject.UsergroupPrices
.Where(x => x.UsergroupID == item.UsergroupID)
.Select(x => (decimal?) x.Price)
.SingleOrDefault();
(转换为decimal?
将使SingleOrDefault
返回nulldecimal?
值,如果没有找到匹配项,则返回0。)
请注意,您当前的代码将进行大量的数据库查询,假设这些查询实际上与数据库上下文关联。您可能应该在控制器中执行这些查询,而不是在视图中。。。在控制器中获取所需的所有数据,并以最简单的方式将其放入模型中以供视图显示。我怀疑您只是在寻找
Single
或可能的SingleOrDefault
:
var price = Model.BookingObject.UsergroupPrices
.Where(x => x.UsergroupID == item.UsergroupID)
.Select(x => (decimal?) x.Price)
.SingleOrDefault();
(转换为decimal?
将使SingleOrDefault
返回nulldecimal?
值,如果没有找到匹配项,则返回0。)
请注意,您当前的代码将进行大量的数据库查询,假设这些查询实际上与数据库上下文关联。您可能应该在控制器中执行这些查询,而不是在视图中。。。获取控制器中所需的所有数据,并以最简单的方式将其放入模型中,以便视图显示。用户组和用户组价格之间的关系是什么类型的?描述您的实体关系UserGroups和UsergroupPrice之间是什么类型的关系?描述你的实体关系