Как уже указывалось, это невозможно.Фрагменты документа (строка после хэша, как вы ее называете) предназначены для браузеров только для правильного позиционирования области просмотра.Они не имеют никакого значения для сервера и поэтому не передаются туда.
Однако существует обходной путь, который вы можете использовать.Повторите фрагмент как часть вашего URL, чтобы сделать его доступным для сервера.
Посмотрите на постоянную ссылку на ответы на этот вопрос.Например, ссылка на мой ответ выглядит следующим образом:
http://stackoverflow.com/questions
/6285833/get-current-fragment-in-route-asp-net-mvc/6286097#6286097
Посмотрите, как значение 6286097
дублируется в качестве последнего параметра маршрута.Это намеренно.Вы также можете использовать эту технику.
PS Фрагмент должен указывать на идентификатор в документе (идентификатор некоторого HTML-элемента).По крайней мере, в XHTML только идентификаторы работают как фрагменты.Допустимые идентификаторы могут не начинаться с цифры, поэтому вместо #6286097
используйте что-то вроде #answer-6286097
.
PS # 2.Не используйте хитрость JavaScript, чтобы обойти это ограничение.Базовая функциональность и дизайн сайта должны работать без JavaScript - не слушайте тех, кто говорит вам иначе.Фрагменты очевидно принадлежат к основному ящику с инструментами.Используйте JavaScript только для продвинутой интерактивности.