【问题标题】:Ordering items from a model in a list C#从列表中的模型中订购项目 C#
【发布时间】:2014-11-19 12:16:48
【问题描述】:

我是 MVC 4 的新手,我正在尝试弄清楚如何对通过从模型中读取创建的列表进行排序。

这是型号代码:

public class Files
{
    [Key]
    public int File_id { get; set; }
    public string Original_file_name { get; set; }
    public string Current_file_name { get; set; }
    public string Description { get; set; }
    public string File_path { get; set; }
    public string File_type { get; set; }
    public string File_status { get; set; }
    public DateTime Expiry_date { get; set; }
    //public int Uploaded_by { get; set; }
    //public DateTime Uploaded_on { get; set; }
}

public class FilesContext : DbContext
{
    public DbSet<Files> Files { get; set; }
}

这是创建列表的控制器代码:

return View(db.Files.ToList());

最后是将其写入屏幕的 html:

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Original_file_name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Current_file_name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.File_type)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.File_status)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Expiry_date)
    </td>
    <td>
        @Html.ActionLink("Details", "Details", new { id=item.File_id }) |
        <!--@Html.ActionLink("Test", "Test", new { id=item.File_id }) |-->
        @Html.ActionLink("Delete", "Delete", new { id=item.File_id })
    </td>
</tr>
}

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    按文件名升序排列:

    db.Files.OrderBy(file => file.Original_file_name).ToList();
    

    按文件名降序排列:

    db.Files.OrderByDescending(file => file.Original_file_name).ToList();
    

    多次订购:

    db.Files.OrderBy(file => file.Original_file_name).ThenBy(file => file.Expiry_date).ToList();
    

    您也可以参考:MSDN: LINQ Sorting Operations

    【讨论】:

      【解决方案2】:

      喜欢:

       db.Files.OrderBy(f => f.Expiry_date).ToList();
      

       db.Files.OrderByDescending(f => f.Expiry_date).ToList();
      

      【讨论】:

      • 添加引导线并解释为什么您的答案会奏效。
      【解决方案3】:
      return View(db.Files.OrderBy(col=>col.Expiry_date).ToList());
      

      或者将 Expiry_date 替换为您想要排序的任何其他列。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-02
        • 2016-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-09
        • 2022-11-12
        • 2020-09-08
        相关资源
        最近更新 更多