Asp.Net MVC Routing - как мне сопоставить весь URL?
Я пытаюсь создать универсальный маршрут для отслеживания того, когда в URL-адресе есть строка аффилированного лица. Аффилированный код помеченx
с последующимint
и будет отображаться только в конце URL-адреса (но перед строкой запроса).
Идея состоит в том, что я извлеку партнерский ID, выполнил бы регистрацию, затем сделал бы 301 по тому же запросу без партнерского ID.
Например:
http://www.domain.com/x32
http://www.domain.com/x32/
http://www.domain.com/path/to/something/x32
http://www.domain.com/x32?query=string
http://www.domain.com/x32/?query=string
http://www.domain.com/path/to/something/x32?query=string
http://www.domain.com/path/to/something/x32/?query=string
У меня есть этот маршрут
routes.Add(new Route("{url}/x{affiliateExternalId}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(
new { controller = "Home", action = "LogCookieAndRedirect" }
),
Constraints = new RouteValueDictionary(new { affiliateExternalId = @"\d{1,6}" })
});
Который только соответствует
http://www.domain.com/path/x32
http://www.domain.com/path/x32/
Что мне нужно сделать, чтобы сопоставить все и передать строку запроса в контроллер? Существует*
оператор, которого я подозреваю, я должен использовать, но я не могу заставить его делать то, что мне нужно.