mvc3 Маршруты настроены как id, id2 id3 - PullRequest
1 голос
/ 01 июля 2011

У меня есть следующие настройки маршрутов области.

context.MapRoute(
    "Admin_default3",
    "Admin/{controller}/{action}/{id}/{id2}/{id3}",
    new { action = "Index" }
);
context.MapRoute(
    "Admin_default2",
    "Admin/{controller}/{action}/{id}/{id2}",
    new { action = "Index"}
);

context.MapRoute(
    "Admin_default",
    "Admin/{controller}/{action}/{id}",
    new { action = "Index", id = UrlParameter.Optional }
);

Когда выполняется действие контроллера, я делаю что-то вроде следующего, где помещаю параметры в читаемые имена переменных.

public ActionResult Search(Guid? id, int? id2, bool? id3)
{
    Guid? source = id;
    int daysOld = id2;
    bool includeNonEnglish = id3;

    //.... Action!
}

Должен ли я продолжать в том же духе? Должен ли я создать множество маршрутов?

спасибо

1 Ответ

3 голосов
/ 01 июля 2011

Я бы создал больше маршрутов. Таким образом, у вас есть такие вещи, как:

Html.ActionLink(title, "Action", "Controller", new { source = <value>, daysOld = <value>, includeNonEnglish = <value> });

Вместо:

Html.ActionLink(title, "Action", "Controller", new { id = <value>, id2 = <value>, id3 = <value> });

Среди прочего (например, AJAX-вызовы с jQuery, где вы используете Json для задания параметров). Это сделало бы вещи более читабельными. Это также поможет, если вы используете или собираетесь использовать T4MVC.

...