Получение якорной ссылки в URL для ASP.Net - PullRequest
21 голосов
/ 21 апреля 2009

У меня есть такой URL:

http://localhost/place/663828/bangkok-paradise-restaurant-toronto#r306040

Я пытаюсь увидеть, существует ли тег якоря вместе с получением значения для некоторой логики кода в коде позади.

Я пытался использовать Page.Request, но ни одно из свойств не отображает часть ссылки привязки URL.

Например:

Response.Write (this.Page.Request.RawUrl.ToString ());

Довольно много раз попробовал комбинации / свойства на этой странице: http://www.west -wind.com / weblog / posts / 269.aspx

Просто чтобы завершить эту тему:

Я скопировал подход Stackoverflow с постоянной ссылкой ...: D

Ответы [ 3 ]

24 голосов
/ 21 апреля 2009

Невозможно получить #anchor со стороны сервера в ASP.NET

Это флаг на стороне клиента, который указывает браузеру перейти в определенное место на странице.

Вы можете использовать Javascript в событии body onLoad для проверки привязки и отправки ее обратно на сервер с помощью ajax.

var anchorValue;
var url = document.location;
var strippedUrl = url.toString().split("#");
if(strippedUrl.Length > 1)
anchorvalue = strippedUrl[1];

ref: http://www.wacdesigns.com/2008/01/16/retrieving-anchor-value-from-url/

14 голосов
/ 21 апреля 2009

Будучи более явным, тег привязки никогда не отправляется как часть HTTP-запроса любым браузером, он интерпретируется только локально в браузере. Ни ASP.NET, ни какая-либо другая технология веб-сервера, Microsoft или иное не увидят привязку к этому запросу.

RFC 1808
Раздел 2.4.1 - «Обратите внимание, что идентификатор фрагмента не считается частью URL.»

Как и предполагали другие, самое близкое, что вы могли бы получить, это использовать клиентскую часть для чтения местоположения окна браузера.

7 голосов
/ 14 мая 2012

Фрагмент может быть проанализирован из URL в C # следующим образом:

var uri = new Uri("http://localhost?id=2#token=23");
var fragment = uri.Fragment; // will return #token=23

Однако существует проблема в том, что браузер не будет отправлять фрагменты на сервер. Если вы получаете запросы от службы, которая включает эту информацию в запрос, она также будет доступна со стороны сервера.

...