none
Как получить список имен параметров для определенного route RRS feed

  • Вопрос

  • Например, есть такой метод в статичном классе NamedRouteExtensions

            public static Route MapNamedRoute(this RouteCollection routes, string routeName, string routeUrl, string physicalFile, out RouteDataStruct OutputStructItem)
            {
                OutputStructItem = new RouteDataStruct();
                Route RouteItem = routes.MapPageRoute(routeName, routeUrl, physicalFile);
                return AddRouteNameDataToken(routeName, RouteItem, out OutputStructItem);
    
            }


    Я в global.asax регистрирую роут:

    NamedRouteExtensions.MapNamedRoute(routes, "PathSiteDirectory", "path/{SiteDirectoryID}", "~/ShowPath.aspx", out itemStruct);

    Каким образом можно получить список имен параметров для текущего роута в MapNamedRoute? Т.е. для примера выше

    результатом будет лист с одним элементом SiteDirectoryID, если я добавлю к Url {*SecondParam}, то он появится в результате вторым в списке. Т.е. как заранее выдернуть наименования параметров в регистрируемом роуте?

    Если это невозможно, то остается только писать свой класс-оболочку над роутом, но тогда появляется другой вопрос:

    как из листа параметров List<string> корректно сгенерировать routeUrl вроде этого "path/{SiteDirectoryID}/{*BrandID}", конечно можно тупо добавлять к строке "/"+CurrentParameterName, но параметры роутинга бывают разные и боюсь данный подход может привести к ошибкам и нестыковкам в будущем.

    В таком случае с тем же успехом можно воспользоваться первым вариантом, а параетры дергать при помощи парсинга строки внутри "{}", но я надеюсь есть какое-то правильное встроенное решение.


    Подскажите как это сделать правильно?
    • Изменено Kutcher 7 декабря 2014 г. 12:19
    7 декабря 2014 г. 12:18

Ответы

  • "Т.е. как заранее выдернуть наименования параметров в регистрируемом роуте?" - я пока себе не совсем представил? Если их туда добавляете вы, зачем ещё их оттуда вытаскивать? Ну раз вы сами создаёте роуты, тогда создайте статический класс для хранения нужной вам информации.

    Сделаем содержимое сообщества лучше, вместе!

    7 декабря 2014 г. 20:27
    Модератор