Разобрать расширение файла маршрута MVC от RequestContext - PullRequest
1 голос
/ 18 мая 2011

Я установил два пользовательских расширения для включения MVC в IIS6.

Таким образом, сайт может быть доступен с URL-адресом, например, ...

mysite/mycontroller.europe/myaction

или как ...

mysite/mycontroller.america/myaction

Какой самый надежный способ найти расширение из экземпляра RequestContext?

Итак, я хотел бычтобы иметь возможность написать что-то вроде ...

var location = reqContext.......GetExtenstion(); // location = "europe"

и, очевидно, работать, даже если настройка сайта / каталогов немного меняется.

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

Определить маршрут:

routes.MapRoute(
    "DefaultWithExtension",
    "{controller}.{extension}/{action}",
    new { controller = "Home", action = "Index", extension = "america" }
);

и затем:

var extension = RequestContext.RouteData.GetRequiredString("extension");
0 голосов
/ 02 июля 2014

Также вы можете просто определить расширение как строковый параметр для всех соответствующих действий для контроллеров, в этом случае оно будет доступно напрямую.например,

public ActionResult myaction(string extension)

Для этого по-прежнему требуется запись mapRoute, определенная выше.

...