Создайте маршрутный URL из трех частей для контроллера в ASP.NET MVC3 - PullRequest
0 голосов
/ 25 апреля 2011

Я использую ASP.NET MVC3 и мне интересно узнать, как создавать маршруты, такие как / Account / Ajax / Action, карта для контроллера. AccountAjaxController. Action

Есть ли способ сделать это?

Уже решена проблема с использованием следующего кода в файле Global.asax.cs:

        routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}",
            new {controller = "Home", action = "Index", id = UrlParameter.Optional},
            new[] {"MyProjectName.FrontEnd.Web.Logic.Controllers"}
            );

        routes.MapRoute(
            "Ajax",
            "Ajax/{controller}/{action}/{id}",
            new[] {"MyProjectName.FrontEnd.Web.Logic.Controllers.Ajax"}
            );

1 Ответ

1 голос
/ 25 апреля 2011

Один из способов сделать это с помощью RouteCollection.MapRoute ().См. http://msdn.microsoft.com/en-us/library/dd470521.aspx. Вы можете делать все виды вещей с маршрутами.

В приведенном ниже коде я обычно вызываю это из своего global.asax.cs Application_Start ():

    RouteCollection routes = RouteTable.Routes;

    routes.MapRoute(
        "ArbitraryRouteName", // Route name
        "Account/Ajax/Action/", // URL with parameters
        new
        {
            controller = "AccountAjax",
            action = "Action"
        },  // Parameter defaults
        new
        {
        }
    );

Есть много способов использовать это для генерации ссылок.Вы можете использовать Html.RouteLink () в своих представлениях в качестве примера.Я считаю, что вы также можете вызвать Html.ActionLink ("текст ссылки", "AccountAjax", "Действие").Я думаю, что при условии, что только один Маршрут сопоставлен с вашим контроллером и именем действия, ASP.NET MVC автоматически определит правильный URL для генерации из ваших сопоставлений маршрутов.

См. http://msdn.microsoft.com/en-us/library/dd492585.aspx для примера метода расширения RouteLink.

...