почему браузер следит за URL, который обновляется pushState ()? - PullRequest
0 голосов
/ 19 октября 2018

Я сделал простое приложение ASP.NET MVC, которое обновляет содержимое страницы с помощью AJAX и обновляет URL с помощью history.pushState () при событии нажатия кнопки.Вот код

$("#btn").click(function (event) {
    var Response = CallAPI();
    var PageTitle = $(document).find("title").text();
    var StateObj = {
        FirstName: Response.FirstName
    };
    var FirstNameUrl = "/" + Response.FirstName;
    history.pushState( StateObj, PageTitle + Response.FirstName, "/Users" + FirstNameUrl );
    event.preventDefault();
});

URL-адрес в начале - <a href="http://localhost:64061/Users" rel="nofollow noreferrer">http://localhost:64061/Users</a>, а после запроса ajax URL-адрес обновляется до <a href="http://localhost:64061/Users/UserName" rel="nofollow noreferrer">http://localhost:64061/Users/UserName</a>, однако этот URL-адрес не существует, что является проблемой, поскольку, поскольку яобновить это говорит, что документ не существует, однако я использовал event.preventDefaults().

Я знаю, что это потому, что URL не отображается ни на один из существующих маршрутов, но значит ли это, что я должен определить маршрут и для этого URL?Это правильный путь?

1 Ответ

0 голосов
/ 19 октября 2018

history.pushState просто работает во внешнем интерфейсе.Это не будет заботиться, если документ действительно существует.Это отвечает за бэкэнд.

Вы могли бы предоставить маршрут для всех с регулярным выражением, например: /\/Users\/\w+$/

Для ASP.NET MVC явный это должно быть что-то вроде /Users/{userName},https://docs.microsoft.com/de-de/aspnet/mvc/overview/older-versions-1/controllers-and-routing/asp-net-mvc-routing-overview-cs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...