Я работаю над приложением, созданным в течение двухдневного предварительного просмотра ASP.NET MVC. Местами довольно грязно, и я пытаюсь его почистить. Одна проблема, которую я пытаюсь преодолеть, - это слишком подробный код.
Например, у меня есть куча методов, которые выглядят точно так же, но с другими параметрами сортировки по умолчанию. По умолчанию размер страницы и страницы не меняются в приложении.
public ActionResult List(int? page, int? pagesize, string sortby, string sortorder)
{
if (string.IsNullOrEmpty(sortby))
sortby = "ClientInvoiceNumber";
if (string.IsNullOrEmpty(sortorder))
sortorder = "desc";
page = page ?? 1;
pagesize = pagesize ?? 10;
...
return View();
}
Теперь в идеале C # будет поддерживать что-то вроде этого:
public ActionResult List(int page = 1, int pagesize = 10, string sortby = "ClientInvoiceNumber", string sortorder = "desc")
Но, конечно, это не так.
Где именно в ASP.NET MVC я хотел бы написать некоторый код для установки параметров по умолчанию для каждого действия, а не для каждого маршрута? Кто-нибудь решил эту проблему в чистом виде? Кстати, или есть что-то запеченное в рамках, о которых я просто не знаю? Если возможно, я бы даже хотел добавить любые параметры по умолчанию в коллекции параметров HttpRequestBase.
Я думал об этом кое-что, но хотел бы оставить вопрос открытым, чтобы не искусственно направлять ответы в определенном направлении. Я понимаю, что значения по умолчанию можно установить в определениях маршрутов, но я бы хотел установить значения по умолчанию для каждого действия без необходимости создавать миллиард маршрутов.