【问题标题】:OrderByDescending doesn't exist?OrderByDescending 不存在?
【发布时间】:2014-12-23 20:04:32
【问题描述】:

我不确定这是我的代码中的错误,或者可能是其他东西弄乱了它,但是我有一个函数是我正在从 ActionResult 中的 MVC 模型创建一个简单列表我还有其他人使用 OrderByDescending并且可以工作,但是由于某种原因这会引发错误。

[Authorize(Roles = "Administrator, Manager, User")]
[SessionExpire]
public ActionResult PrepareShipment(int id,string sortOrder)
{
    //ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    //ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

    Order orderResult = (from o in db.Orders.Include("OrderItems").Include("OrderItems.Item") 
                         where o.OrderID == id 
                         select o).First();
    orderResult = orderResult.OrderByDescending(o => o.Item.ItemName);

    return View(orderResult);
}

这是我完整的ActionResult 数据库有一个表Order 和另一个名为Item 的对象,该对象有一个名为ItemName 的列。我已经有一个视图,其中包含一个专门在视图中完成的列表,但现在我必须按项目名称对该数据进行排序。因此,每次在页面上执行操作时,列表都会保持与首次加载时相同的顺序。现在每次我重新加载页面时,列表都会重新排序。

【问题讨论】:

  • cmets 关于我现在已删除的答案的注释:OP 想要对项目进行排序,而不是订单本身。这个项目序列在视图中被迭代,我们没有代码......我建议OP在视图中使用OrderByDescending(在项目序列上)但OP没有'还不能使用这个建议,我们不能提供示例代码,因为我们不知道视图代码是什么样的......
  • 很抱歉没有为您提供您需要的所有信息 我是新来的提问者,通常可以找到我正在寻找的任何答案。

标签: asp.net-mvc linq razor sql-order-by actionresult


【解决方案1】:

好的,所以我在 foreach 中解决了这个问题,我现在意识到我应该包含在原始帖子中

每个的原件都是这个

@foreach (OrderItem item in Model.OrderItems) {

我通过对 foreach 执行此操作来修复它

@foreach (OrderItem item in Model.OrderItems.OrderBy(m => m.OrderItemID)) {

我什至不知道您可以在 c# 中向 foreach 添加类似的附加信息

感谢大家对我的耐心:D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2017-10-15
    • 1970-01-01
    相关资源
    最近更新 更多