Asp.net mvc 是否基于ASP.NET MVC中的查询将数据打印到屏幕?
我有一个我正在开发的应用程序,我想循环一些数据,其中数据中的标志被设置为1或2,并将其打印到屏幕上 我正在使用的想法来自一个MVC教程:Asp.net mvc 是否基于ASP.NET MVC中的查询将数据打印到屏幕?,asp.net-mvc,linq,datamodel,Asp.net Mvc,Linq,Datamodel,我有一个我正在开发的应用程序,我想循环一些数据,其中数据中的标志被设置为1或2,并将其打印到屏幕上 我正在使用的想法来自一个MVC教程: <ul> <% For Each m As Movie In ViewData.Model%> <li><%= m.Title %></li> <% Next%> </ul> 但是我想做与上面类似的事情,但是使用LINQ语句来获取所需的数据 我该怎么做 我开
<ul>
<% For Each m As Movie In ViewData.Model%>
<li><%= m.Title %></li>
<% Next%>
</ul>
但是我想做与上面类似的事情,但是使用LINQ语句来获取所需的数据
我该怎么做
我开始时或多或少地复制了上面的代码,我知道这不会起作用,但我只是看到它对我的数据做了什么
<table cellpadding="0" cellspacing="0" width="643">
<% For Each Ticket As hdCall In ViewData.Model%>
<tr>
<td width="54" class="ticketList"> </td>
<td width="182" class="ticketList"><%=Ticket.Title%></td>
<td width="88" class="ticketList"></td>
<td width="148" class="ticketList"></td>
<td width="58" class="ticketList"></td>
<td width="115" class="ticketList"></td>
</tr>
<% Next%>
</table>
您可以添加where子句:
<% For Each Ticket As hdCall in ViewData.Model.Where(m => m.IsUpcoming==true) %>
m.iscomming==true)%>
但在我看来,这属于模型(或控制器)。我不确定这是一个好主意。您的视图应该尽可能地“轻”,并且如果您开始在其中添加Linq查询,它将开始变得非常重 更好的方法是在控制器方法中提取数据,使用Linq查询从存储库对象检索所述数据。有关这方面的更多信息,请查看NerdDinner教程
无论如何,正如Jao所指出的,您可以将IQueryable传递给视图,它上面的迭代看起来基本上与IEnumerable相同。因此,如果您所做的只是对集合进行枚举,那么这看起来非常干净。您的视图应该根本不包含查询。您的模型应该已经填充了需要显示的内容。您的原始
foreach
是正确的。通常,我从控制器调用数据访问层中的查询,并用结果填充模型。例如:
this.Model=\u ticketposition.FindAllUpcoming();
返回视图()代码>如果我在控制器中执行此操作,我将如何将循环结果打印到屏幕?在这种情况下,您的循环仍将与您原来的问题相同