Возврат представления в ASP.Net Core через jQuery AJAX - не работает в производственной среде

Я возвращаю представление из контроллера и использую jquery для отображения результата. Он отлично работает при отладке, но когда я публикую его на сервере после возврата результата ajax (и правильного), он отключил все элементы. Это сводит меня с ума! Я подумал, что это может быть проблема с тайм-аутом, но, очевидно, не так, как я пробовал до 200 миллисекунд.

JS:

    function openRestaurantList() {
        $.ajax({
            url: "/restaurants",
            success: function (result) {
                document.title = "Restaurants";
                $("body").html(result);
            }
        });
    }

Контроллер:

    [Route("restaurants")]
    public IActionResult Restaurants()
    {
        ViewBag.Data = Place.FetchFullListByType(Place.Types.Restaurant);
        return View("RestaurantList");
    }

Возврат представления в ASP.Net Core через jQuery AJAX - не работает в производственной среде

Возврат представления в ASP.Net Core через jQuery AJAX - не работает в производственной среде

result то, что вы ожидаете?

charlietfl 15.12.2018 15:58

Ага, он возвращает мне то, что я хочу. Ошибок в сети нет.

zayn94 15.12.2018 15:59

Невозможно помочь, не имея возможности увидеть, что на самом деле находится в body после ajax, и проверить css в инспекторе инструментов разработчика браузера

charlietfl 15.12.2018 16:01
console.info(result), чтобы перепроверить. Убедитесь, что вы загружаетесь не через прокси, который вносит сомнительные изменения либо в первую страницу, либо в результат ajax.
freedomn-m 15.12.2018 16:06

Добавил фотографии, не уверен, поможет ли это, я сделал console.info и результат абсолютно нормальный. Просто все элементы ушли.

zayn94 15.12.2018 16:07

Попробуйте .empty().html( string ). Есть ли какая-нибудь мини-демонстрация для воспроизведения вашей проблемы?

Edward 17.12.2018 02:49
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
6
799
1

Ответы 1

Проблема в том, что URL-адрес, который вы используете, зависит от пути, по которому вы находитесь.

Замените «/ Restaurants» на «@ Url.Action (« Restaurants »,« controllerName »)», чтобы получить абсолютный URL-адрес действия.

Вы также можете проверить страницу (F12 в хроме) и посмотреть на вкладку сети, вы увидите ошибку 404 о действии ресторанов. Там вы можете получить информацию о том, какой URL-адрес вы попадаете с помощью вызова jquery.

Проблема не в этом, дело в том, чтобы добраться до контроллера и вернуть правильный результат. Проблема должна быть на стороне клиента.

zayn94 15.12.2018 16:24

Добавьте div внутрь тела и поместите html в этот документ. Менять body html не рекомендуется.

Guido Zanon 15.12.2018 16:28

Попробовал, и он все еще блокирует все.

zayn94 15.12.2018 16:40

ваше действие должно возвращать частичное представление вместо представления. Как и в случае с представлением, вы возвращаете целую страницу с тегом html. Она не будет работать.

Guido Zanon 15.12.2018 16:47

Другие вопросы по теме