【问题标题】:Order for ForEach on View Model在视图模型上订购 ForEach
【发布时间】:2010-10-21 16:56:57
【问题描述】:

在 MVC 2 中,我有一个用户控件 - 部分页面如下。

模型有四个记录

id Dtext Dtext1  
1 A, A1  
2 B  B1  
3 C  C1  
4 D  D1  

在我的机器上 - 按照预期的 ID 顺序输出如上。

但部署后的输出完全奇怪,如下所示。

D  D1  
B  B1  
A, A1  
C  C1  

想知道如何从 ViewModel 发送或检索数据?为什么不按特定顺序。任何想法。

我已经下载了 MVC 源代码进行调查,但不知道从哪里开始?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl< MyData>" %>
<% if (Model != null)
   {
%>

    <% 
        foreach (var item in Model)
        {%>
    <%: item.DisplayText %>
        <%: item.DisplayText1 %>
    <% }%>
<%} %>

【问题讨论】:

  • 您是否使用相同的数据库进行开发和部署?
  • 数据库服务器不一样。 Sql server 配置是一样的。 sql 脚本和插入脚本是相同的。表中的数据由两个数据库上的脚本填充。这不应该造成上述问题..!?
  • 由于没有人提到它,查询中没有排序 = 不可预测的行顺序。实际上是数据库 101。

标签: asp.net-mvc foreach viewmodel partial-views


【解决方案1】:

无论如何,您应该在您的MyData 中传递列表...在获取记录的查询中使用OrderBy()。在您的情况下,无论您在哪里得到records 的列表-

var result=records.OrderBy(i=>i.id).ToList();

【讨论】:

  • 我知道如何解决这个问题,但我想知道为什么在一台机器上数据以升序显示,而在另一台机器上不是?为什么不在每台机器上的特定命令中。任何想法
  • 使用 IEnumerable Inherits="System.Web.Mvc.ViewUserControl>" %>
  • 这是您从数据库中获取记录的方式...在 view 方面无事可做..我不确定究竟是什么原因造成的..
猜你喜欢
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 2020-09-08
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 2022-11-12
  • 1970-01-01
相关资源
最近更新 更多