Ответ 1
Вы не можете получить значение после символа #
на сервере просто потому, что это значение никогда не отправляется на сервер. Только клиентский javascript имеет доступ к этому, поэтому определение маршрутов с хешем не имеет особого смысла.
Мне нужно реализовать хэш-значение, то есть Url должен выглядеть следующим образом:
/дома/индекс/# создать
Для этого добавили маршрут:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/#{detail}", // URL with parameters
new { controller = "Login", action = "LogIn", detail =""} // Parameter defaults
);
При доступе к /home/index/#create
он перенаправляет меня на маршрут по умолчанию.
Как это можно сделать?
Вы не можете получить значение после символа #
на сервере просто потому, что это значение никогда не отправляется на сервер. Только клиентский javascript имеет доступ к этому, поэтому определение маршрутов с хешем не имеет особого смысла.
Как указано, нет способа сделать это с помощью маршрутизации. Единственное возможное решение - добавить # фрагмент к вашему URL-адресу при перенаправлении действий вашего контроллера. Например.
return Redirect(Url.Action("Index", "Home") + "#create");
Когда браузер делает запрос на URL-адрес, он не отправляет ничего после хэша на сервер. Этот маршрут может позволить вам генерировать URL-адреса маршрутов, содержащие хеш-значение, но нет способа сделать что-либо на стороне сервера, когда пользователь перейдет к такому URL-адресу. Это то, как работает веб-сайт...