Является ли Request.QueryString без?или & возможно? - PullRequest
2 голосов
/ 16 января 2012

Можно ли получить значение QueryString без использования? или & в URL?

Я бы хотел, чтобы это было так:

http://www.colors.com/Red

string id = Request.QueryString["?"];

Вместо следующего:

http://www.colors.com/?ColorID=Red

string id = Request.QueryString["ColorID"];

Ответы [ 3 ]

3 голосов
/ 16 января 2012

Нет. Строка запроса определяется как появление ?.

Приведенный вами пример перенаправит пользователя в каталог.

1 голос
/ 16 января 2012

Если вы все еще хотите иметь возможность доступа к значению color-id через Querystring, вам следует посмотреть Перезапись .Это может произойти из-за устаревшего кода, который вы не можете изменить, или из-за других форм взаимодействия со сторонним кодом.Преимущество или Rewriting заключается в том, что код, который заканчивается выполнением, не знает, как URL-адрес выглядел до того, как был переписан, и он может продолжать работать, как если бы был параметр Querystring с именем ColorID.

* 1006.* В простейшей форме вам нужно вызвать метод Rewrite объекта HttpContext, который вызовет новый внутренний запрос, который выполняет код, соответствующий этому URL, и пользователь ничего не заметит.Одним из предостережений этого может быть то, что ваш унаследованный код не знает, как отображать правильные ссылки в меню и прочем, поэтому вы будете иметь URL-адреса, подобные ?ColorID=Red, где они должны были быть просто Red.

В IIS 7 и выше есть встроенный фильтр, в котором вы можете писать свои правила и шаблоны, поэтому вам не нужно писать собственный код, который соответствует входящим запросам и вызовам HttpContext.Rewrite.Подробнее об этом здесь на MSDN.

Теперь, Маршрутизация - это совсем другое.Это функция Asp.net, которая не работает поверх существующего унаследованного кода, но должна использоваться вместе с ней.Это означает, что исполняемый код должен знать, что запрос направлен на него.Это, конечно, имеет много преимуществ, и если вы пишете новую систему, то я бы определенно рекомендовал использовать Routing over Rewriting .Здесь есть хорошая статья о различиях, и некоторые вопросы SO также охватывают эту тему:

0 голосов
/ 16 января 2012

Похоже, вы захотите внедрить веб-сайт MVC.

Для получения дополнительной информации ознакомьтесь с этой документацией MSDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...