Как вы используете строки запросов с маршрутизацией ASP.NET? - PullRequest
1 голос
/ 15 октября 2008

Новая маршрутизация ASP.NET отлично подходит для простых URL-адресов в стиле пути, но если вы хотите использовать URL-адрес, такой как:

http://example.com/items/search.xhtml?term=Text+to+find&page=2

Нужно ли использовать параметр catch all с проверкой?

Ответы [ 4 ]

3 голосов
/ 15 октября 2008

Вы также можете сопоставить параметры строки запроса с маршрутами, если вы хотите просто захватить все, что вам нужно, чтобы добавить параметр следующим образом:

{*} contentUrl

Что заполняет оставшуюся часть URL в эту переменную.

2 голосов
/ 16 октября 2008

Любые элементы данных представления, которые не перечислены в маршруте, автоматически сопоставляются со строкой запроса, поэтому если вы сопоставляете "items / search.xhtml" с действием:

Search(string term, int page)

Тогда вы должны получить результаты, которые вы ищете.

0 голосов
/ 12 марта 2012

Вы все еще можете использовать Request.QueryString["some_value"];

0 голосов
/ 11 октября 2011

У меня также были проблемы с передачей закодированного URL-адреса на маршрут в качестве параметра маршрута.

Вы не можете использовать символы URL в URL, но можете это сделать в строке запроса.

Поэтому мне нужно, чтобы в моем маршруте также был элемент строки запроса.

Скажите, у меня есть маршрут:

MapPageRoute("myroute", "myroute/{x}", "~/routehander.aspx")

Но я хочу это в виде:

http://mywebsite.com/myroute/{x}?url=myurl

Мы можем сделать это:

Dim x as integer = 12
Dim rvd As New Routing.RouteValueDictionary
rvd.Add("x", x)
rvd.Add("url", Server.UrlEncode("/default.aspx"))
HttpContext.Current.ApplicationInstance.Response.RedirectToRoutePermanent("myroute", rvd)

Это перенаправит нас на следующий URL:

http://mywebsite.com/myroute/12?url=%252fdefault.aspx
...