ASP MVC 3 - Как определить динамическое значение для базы URL? - PullRequest
0 голосов
/ 23 сентября 2011

Я хотел бы «показать» динамическое значение в базе URL-адреса, поэтому URL-адрес будет выглядеть следующим образом: host.com/SOME_VALUE/ndomarea‹/ndomcontroller уговаривающегося

Таким образом, если запрашивается URL-адрес без первого значения (динамическое значение): host.com/ndomarea‹/ndomcontroller уговоры / enjaction}, правильное действие должно быть вызвано, но когда представление отображается (или при перенаправлении) должен быть возвращен правильный URL с правильным первым значением.

Это решение было бы полезно только для отображения в URL указанного значения, идентифицирующего вход пользователя в систему, например, имени пользователя или, возможно, названия компании, или любого другого значения, связанного с текущим сеансом, это значение не будет использоваться для ограничивает доступ к действиям, поэтому оба URL-адреса должны быть действительными и вызывать одно и то же действие в том же сеансе:

host.com / {область} / {контроллер} / {действие} host.com/some_value/{area}/{controller}/{action}

Есть предложения?

1 Ответ

0 голосов
/ 23 сентября 2011

Это полностью не проверено, но я бы подумал, что это сработает ...

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "MyRoute", // Route name
        "{somevalue}/{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

}

Можно ли добавить дополнительное статическое значение в URL при использовании части somevalue?то есть host.com/users/some_value/area/controller/action.Это сделало бы отображение маршрута простым, так как все, что вам нужно, это:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "LoggedInUsers", // Route name
        "Users/{somevalue}/{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

}
...