C# 在.cshtml文件中以DD/MM/YYYY格式对DateTime对象排序
目前,我在.cshtml文件中有一个for循环,该循环遍历ViewBag中的项目。我想根据Order.cs文件中名为orderDate的DateTime属性对这些对象进行排序。.cshtml文件中的for循环如下所示:C# 在.cshtml文件中以DD/MM/YYYY格式对DateTime对象排序,c#,asp.net-mvc,asp.net-mvc-4,datetime,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Datetime,Razor,目前,我在.cshtml文件中有一个for循环,该循环遍历ViewBag中的项目。我想根据Order.cs文件中名为orderDate的DateTime属性对这些对象进行排序。.cshtml文件中的for循环如下所示: <table id="order-history-table" class="table table-hover"> <thead> <tr> <th> Order Number
<table id="order-history-table" class="table table-hover">
<thead>
<tr>
<th>
Order Number
</th>
<th>
Order Date
</th>
<th>
Order Total
</th>
</tr>
</thead>
<tbody>
@foreach (var item in ViewBag.list)
{
<tr>
<td>
<a class="orderNumber" data-toggle="modal" data-target="#modal-container" href="@Url.Action("orderDetails", "Orders", new { orderNumber = item.order.OrderNumber })">@item.order.OrderNumber</a>
<br />
@Html.ActionLink("Re-Order", "ReOrder", new { orderNumber = @item.order.OrderNumber }, new { onclick = "return confirm('Are you sure you wish to re-order?');" })
</td>
<td>@item.order.OrderDate.ToString("dd/MM/yyyy")</td>
<td style="text-align: center">$@(Math.Round(item.order.OrderTotal, 2))</td>
</tr>
}
</tbody>
订单号
订购日期
订单总数
@foreach(ViewBag.list中的变量项)
{
@ActionLink(“重新订购”,“重新订购”,新建{orderNumber=@item.Order.orderNumber},新建{onclick=“return confirm('您确定要重新订购吗?');”)
@item.order.OrderDate.ToString(“dd/MM/yyyy”)
$@(Math.Round(item.order.OrderTotal,2))
}
我希望对该表进行排序,以便在表的顶部显示最近的订单。由于数据是从数据库中提取的,并且表值是动态生成的,所以我在哪里执行这种排序?是通过jQuery完成的吗?我该怎么做
提前感谢您您可以使用LINQ来完成此操作
因此,在设置ViewBag.list的操作方法中,可以对集合使用OrderByDescending
方法
var yourOrderList=new List<Order>();
// to do : Load Order items to yourOrderList
yourOrderList=yourOrderList.OrderByDescending(f=>f.OrderDate).ToList();
ViewBAg.list=yourOrderList;
var yourOrderList=new List();
//待办事项:将订单项目加载到您的订单列表
yourOrderList=yourOrderList.OrderByDescending(f=>f.OrderDate.ToList();
ViewBAg.list=您的订单列表;
我还建议使用视图模型将数据从动作方法传递到视图
var yourOrderList=new List<Order>();
// to do : Add orders to yourOrderList
yourOrderList=yourOrderList.OrderByDescending(f=>f.OrderDate).ToList();
return View(yourOrderList);
var yourOrderList=new List();
//要做的事情:将订单添加到您的订单列表中
yourOrderList=yourOrderList.OrderByDescending(f=>f.OrderDate.ToList();
返回视图(您的订单列表);
在你看来
@model List<Order>
<h3>Orders</h3>
@foreach(var o in Model)
{
<p>@o.OrderDate.ToString()</p>
}
@型号列表
命令
@foreach(模型中的var o)
{
@o、 OrderDate.ToString()
}
因为您的视图是强类型的,所以您也可以根据需要在razor视图中执行相同的排序
@model List<Order>
<h3>Orders</h3>
@foreach(var o in Model.OrderByDescending(g=>g.OrderDate))
{
<p>@o.OrderDate.ToString()</p>
}
@型号列表
命令
@foreach(Model.OrderByDescending(g=>g.OrderDate)中的变量o)
{
@o、 OrderDate.ToString()
}
在控制器中对其进行排序(例如,在linq查询中使用.OrderByDescending()
)。并且不要使用ViewBag
-将模型传递给视图