Ajax обновление PartialView vs View - PullRequest
0 голосов
/ 07 мая 2019

Я делаю очень простой веб-сайт с меню слева и содержимым справа.

Например, CompanyController имеет следующее действие:

public IActionResult Index(int? page)
        {
            var pageNumber = page ?? 1;

            var pageOfCompanies = companyService.ToPagedList(pageNumber, 10);

            ViewBag.OnePageOfCompanies = (IPagedList)pageOfCompanies;

            return PartialView("~/Views/Company/Index.cshtml");
        }

Я пытаюсьзагрузить каждую опцию меню (действие контроллера) с помощью ajax.Я фиксирую событие click для каждого элемента и, когда функция ajax.get заканчивается, я обновляю содержимое и URL браузера.

<script type="text/javascript">

    function getAjaxUrl(url, targetSelector) {

        $.ajax({
            type: "GET",
            url: url,
            dataType: "html",
            cache: false,
            success: function (data) {

                //Refresh content
                $(targetSelector).html(data);

                //Update Navigation URL in browser
                if (url != window.location) {
                    window.history.pushState({ path: url }, '', url);
                }

                //Reload events for new links
                initialize();

            }

        });
    }

    function initialize() {

        $('a').click(function (event) {

            //If href != #
            if (($(this).attr('href') != null || $(this).attr('href') != undefined) &&
                $(this).attr('href').startsWith('/')) {

                //Cancel navigation
                event.preventDefault();

                //Load content
                getAjaxUrl($(this).attr('href'), "#content");

            }
        });
    }

    $(document).ready(function () {

        $("a[class='dropdown-toggle']").click();

        initialize();

    });

</script>

Проблема заключается в том, что если я нажимаю F5 в браузере, когда я обновляюстраница, он возвращает только «PartialView», не загружая меню.

Кто-нибудь знает, как правильно сделать это?

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