开发者

ASP.NET MVC2 Simple Linq Question

I have the following code:

      public ActionResult ViewCategory(string categoryName, string searchCriteria = "Price")
    {
        // Retrieve Category and its associated Listings from the database
        var categoryModel = db.Categories.Include("Listings")
            .Single(c => c.Title == categoryName);

        var viewModel = new ClassifiedsBrowseViewModel
        {
            Category = categoryModel,
            Listi开发者_JAVA技巧ngs = categoryModel.Listings.ToList()
        };

        return View(viewModel);
    }

This code returns some listings from a given category.

But I want to re-order these search results based on certain criteria. E.G. Price...

Many Thanks, J


You want to use OrderBy() or OrderByDescending() depending upon on requirements.

For example ordering it by highest price -

var viewModel = new ClassifiedsBrowseViewModel
        {
            Category = categoryModel,
            Listings = categoryModel.Listings.OrderByDescending(c=>c.Price).ToList()
        };


Listings = categoryModel.Listings.OrderBy(x => x.Price).ToList();


Another option that might work, depending on how you present the information: use something like the jquery tablesorter plugin, and sort the results on the client side.

Obviously, this won't work if there are a lot of results, and you're doing paging, but for a single page of results, presented in a table, it works great.


Another way to write the Linq is to use the query language:

Listings = from item in categoryModel.Listings
           orderby item.Price
           select item;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜