2012-01-09 2 views
0

Путь я использую параметры запроса из URL являетсязапрашивающие параметры URL в C#

если URL это- http://www.domain.ext/default.aspx?id=123&name=abc

В приведенном выше примере мы можем запросить два параметра, т.е. id и name со страницы default.aspx в string myid = Request["id"]; и string myname = Request["name"];

Но на странице профиля Facebook это показывает что-то подобное.

http://www.facebook.com/john.deo или http://www.facebook.com/madcoder

Где обыкновение быть любое название страницы и определить имя с синтаксисом. Как запросить параметры (john.deo или madcoder) из URL-адреса в C#?

+0

Это не настоящий параметр - это часть URL-адреса. Я думаю, вам придется самому разобрать его из URL. Вы можете отправить URL-адрес в API-интерфейс графика и вернуть идентификатор пользователя, если это то, что вам действительно нужно. – Rup

ответ

3

Этого можно достичь, добавив правила в файл htaccess.

RewriteRule ^([A-Za-z0-9_-]*)/$ index.php?name=$1 

Это правило означает, что если вы набираете в браузере http://www.mydomain.co.uk/john вы можете получить значение «джон», потребовав параметр «имя».

+0

Отлично! Но я думаю, что htaccess для серверов Apache? Я работаю над IIS. –

+0

Взгляните на http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx – psych

+0

Удивительный! Спасибо за вашу информацию :) –

0

Это не параметры URL, которые используются для идентификации ресурса.
Вы можете использовать регулярное выражение, которое вы только цель, чтобы получить «john.deo» в данном URL-адресе

+0

Можете ли вы предоставить мне какой-либо пример кода, чтобы сделать это с помощью регулярного выражения? –

0

Все зависит от того, насколько сложным является ваше решение. Но один простой способ сделать это - использовать маршрутизацию страницы.

Вы можете зарегистрировать маршрут в вашем Global.asax -> Application_Start так:

RouteTable.Routes.MapPageRoute("Route name", "requestformat", "physicalfile", checkPhysicalUrlAccess, routeValueDefaults, routeConstraints); 

Затем в формате запроса указать такие параметры, как «{имя}», а затем по умолчанию параметр имени в словаре'routeValueDefaults' и положить сдерживать его в словаре «truteContstrains». Ограничение может быть задано с помощью выражения reqular, поэтому, если вы хотите, чтобы имена были всего лишь символами, вы могли бы использовать что-то вроде этого «\ w +».

Параметр затем заканчивается в коллекции Page.RouteData["name"] физической страницы.

Смежные вопросы