Подтвердить что ты не робот

Получение привязки Ссылка в URL для ASP.Net

У меня есть такой 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 с permalink...: D

4b9b3361

Ответ 1

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

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

Вы можете использовать Javascript в событии bodyLoad для проверки привязки и отправки его на сервер с помощью 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/

Ответ 2

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

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

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

Ответ 3

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

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

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