Categories: ASP.NET

Получить значения route из URL

Иногда возникает потребность получить route-параметры для строки URL.

Для этого необходимо создать экземпляр RouteData из URL.

RouteInfo Class:

public class RouteInfo  
{  
    public RouteData RouteData { get; private set; }  
  
    public RouteInfo(RouteData data)  
    {  
        RouteData = data;  
    }  
  
    public RouteInfo(Uri uri, string applicationPath)  
    {  
        RouteData = RouteTable.Routes.GetRouteData(new InternalHttpContext(uri, applicationPath));  
    }  
  
    private class InternalHttpContext : HttpContextBase  
    {  
        private readonly HttpRequestBase _request;  
  
        public InternalHttpContext(Uri uri, string applicationPath)  
        {  
            _request = new InternalRequestContext(uri, applicationPath);  
        }  
  
        public override HttpRequestBase Request { get { return _request; } }  
    }  
  
    private class InternalRequestContext : HttpRequestBase  
    {  
        private readonly string _appRelativePath;  
        private readonly string _pathInfo;  
  
        public InternalRequestContext(Uri uri, string applicationPath)  
        {  
            _pathInfo = uri.Query;  
  
            if (String.IsNullOrEmpty(applicationPath) || !uri.AbsolutePath.StartsWith(applicationPath, StringComparison.OrdinalIgnoreCase))  
                _appRelativePath = uri.AbsolutePath.Substring(applicationPath.Length);  
            else  
                _appRelativePath = uri.AbsolutePath;  
        }  
  
        public override string AppRelativeCurrentExecutionFilePath { get { return String.Concat("~", _appRelativePath); } }  
        public override string PathInfo { get { return _pathInfo; } }  
    }  
}  

Пример использования:

Uri uri = new Uri("http://www.yoursite.com/somepage");  
RouteInfo routeInfo = new RouteInfo(uri, HttpContext.Current.Request.ApplicationPath);  
// Here it is...  
RouteData routeData = routeInfo.RouteData;  

Ссылка на источник

 

 

 

Руслан Раянов

Recent Posts

Что важно учесть в системе обработки заказов? Проблемы системы заказов

https://falconspace.ru/blog/sozdanie-sistemy-upravleniya-zakazami-v-vide-lichnykh-kabinetov-na-sayte - Система управления заказами на предприятии. Разработка автоматизированной системы заказов

2 недели ago

Ошибки при запуске маркетплейса

Запуск собственного маркетплейса — это захватывающий, но сложный процесс, который требует внимания к деталям и…

2 недели ago

Что такое онлайн система заказов?

https://falconspace.ru/blog/sozdanie-sistemy-upravleniya-zakazami-v-vide-lichnykh-kabinetov-na-sayte - Система управления заказами на предприятии. Разработка автоматизированной системы заказов

2 недели ago

Причины неудачи it проекта

https://falconspace.ru/blog/chto-delat-kogda-startap-ne-poshel - Причины неудачи it проекта. Как реанимировать веб-проект?

2 недели ago

Меры по обеспечению доступности сайта

https://falconspace.ru/blog/kak-zashchitit-sayt--obespechenie-informacionnoy-bezopasnosti-sayta - Как защитить сайт? Обеспечение информационной безопасности сайта

3 недели ago

Меры по обеспечению целостности информации на сайте

https://falconspace.ru/blog/kak-zashchitit-sayt--obespechenie-informacionnoy-bezopasnosti-sayta - Как защитить сайт? Обеспечение информационной безопасности сайта

4 недели ago