Big switch statement for sorting a table
As a quick improvement you should move the line ViewBag.sortableBy... out of your case statement and only set it in the default.

Secondly, I'm noticing there seem to be two different kinds of logic going on here: whether somebody's a user or a manager, etc. or whether the order is ascending or descending. It may be a lot easier to do something like this:

    Func&lt;IQueryable&lt;DeviceUsage&gt;, IOrderedQueryable&lt;DeviceUsage&gt;&gt; orderBy;
    IOrderedEnumerable&lt;DeviceUsage&gt; info;
    ViewBag.sortableBy = ascending? sortField : sortField + "desc";

    switch (sortField)
    {
        case "user":

            var deviceUsage = unitOfWork.deviceUsageRepository.Get(where, null, null, d =&gt; d.DeviceInstance, d =&gt; d.Storage, d =&gt; d.User);
            var orderFunction = s =&gt; s.User.FullName;
            ViewBag.Desc = true;
            info = ascending? deviceUsage.OrderBy(orderFunction); : deviceUsage.OrderByDescending(orderFunction);
            return PartialView(info.ToPagedList(pageNumber, 15));
        case "manufacturer":
            var orderFunction = o =&gt; o.DeviceInstance.Device.Manufacturer1.Name;
            orderBy = ascending? q =&gt; q.OrderBy(orderFunction) : q =&gt; q.OrderByDescending(orderFunction)
            break;
        .
        .
        .
        default:
            ViewBag.sortableBy="";
            orderBy=q =&gt; q.OrderBy(o =&gt; o.DeviceInstance.Device.CatalogNo);
            break;
    }


This code obviously requires you to split out whether an order is ascending or not beforehand. This can be done with string manipulation if necessary, but there is probably an easier way using code you haven't shown us.