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

Включая значения хэша в URL-адресах ASP.NET MVC

Мне нужно реализовать хэш-значение, то есть Url должен выглядеть следующим образом:

/дома/индекс/# создать

Для этого добавили маршрут:

routes.MapRoute(
    "Default",    // Route name
    "{controller}/{action}/#{detail}",    // URL with parameters
    new { controller = "Login", action = "LogIn",  detail  =""}  // Parameter defaults
);

При доступе к /home/index/#create он перенаправляет меня на маршрут по умолчанию.

Как это можно сделать?

4b9b3361

Ответ 1

Вы не можете получить значение после символа # на сервере просто потому, что это значение никогда не отправляется на сервер. Только клиентский javascript имеет доступ к этому, поэтому определение маршрутов с хешем не имеет особого смысла.

Ответ 2

Как указано, нет способа сделать это с помощью маршрутизации. Единственное возможное решение - добавить # фрагмент к вашему URL-адресу при перенаправлении действий вашего контроллера. Например.

return Redirect(Url.Action("Index", "Home") + "#create");

Ответ 3

Когда браузер делает запрос на URL-адрес, он не отправляет ничего после хэша на сервер. Этот маршрут может позволить вам генерировать URL-адреса маршрутов, содержащие хеш-значение, но нет способа сделать что-либо на стороне сервера, когда пользователь перейдет к такому URL-адресу. Это то, как работает веб-сайт...