Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 是否基于ASP.NET MVC中的查询将数据打印到屏幕?_Asp.net Mvc_Linq_Datamodel - Fatal编程技术网

Asp.net mvc 是否基于ASP.NET 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语句来获取所需的数据 我该怎么做 我开

我有一个我正在开发的应用程序,我想循环一些数据,其中数据中的标志被设置为1或2,并将其打印到屏幕上

我正在使用的想法来自一个MVC教程:

<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">&nbsp;</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();

返回视图()

如果我在控制器中执行此操作,我将如何将循环结果打印到屏幕?在这种情况下,您的循环仍将与您原来的问题相同