Получение параметров из URL - PullRequest
2 голосов
/ 15 июня 2011

Возьмите эти два URL:

  1. www.mySite.com? Имя = ssride360

  2. www.mySite.com / ssride360

Я знаю, что для получения name параметра из URL-адреса 1 вы должны сделать:

string name = Request.Params['name'];

Но как бы получить это для второго URL?

Я думал о попытке скопировать URL-адрес и удалить известную информацию (www.mySite.com), а затем оттуда я мог установить name на остаток.

Как бы я сделал копию URL, как это? Есть ли лучший способ получить 'ssride360' из второго URL-адреса?

Редактировать Просмотр SO Я нашел некоторую информацию о копировании URL

string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx

string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx

Это лучший способ для меня? каждый URL имеет, например, один дополнительный параметр (mySite.com/ssride360?site=SO). Также я знаю, что mySite.com/ssride360 будет ссылаться на папку в моем проекте, поэтому я не буду получать этот файл вместе с ним (mySite.com/ssride360/Default6.aspx)?

На данный момент, я думаю, есть лучшие способы, чем копирование URL.

Предложения

Ответы [ 4 ]

3 голосов
/ 15 июня 2011
 Uri x = new Uri("http://www.mySite.com/ssride360");
 Console.WriteLine (x.AbsolutePath);

отпечатков /ssride360

1 голос
/ 15 июня 2011

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

        char [] delim = new char[] {'/'};
        string url = "www.mySite.com/ssride360";
        string name = url.Split(delim)[1];

Тогда, если у вас был URL, содержащий идентификатор после имени, вы могли бы сделать:

        char [] delim = new char[] {'/'};
        string url = "www.mySite.com/ssride360/abc1234";
        string name = url.Split(delim)[1];
        string id = url.Split(delim)[2];
0 голосов
/ 15 июня 2011

Перезапись URL-адресов является распространенным решением этой проблемы. Вы даете ему шаблоны URL-адресов, которые вы хотите сопоставить, и то, на что он должен изменить его. Таким образом, он обнаружит www.mySite.com/ssride360 и преобразует его в www.mySite.com?name=ssride360. Пользователь веб-сайта видит исходный URL-адрес и не знает ничего измененного, но ваш код видит преобразованный URL-адрес, чтобы вы могли обращаться к переменным обычным способом. Другим большим плюсом является то, что правила позволяют вам задавать шаблоны, которые будут преобразованы, а также шаблоны, которые просто передаются в реальные папки / файлы.

http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/

0 голосов
/ 15 июня 2011

Как и JavaScript?Если так ...

<script type="text/javascript">
function getName() {
    var urlParts = window.location.pathname.split('/');  //split the URL.
    return urlParts[1];    //get the value to the right of the '/'.
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...