Я возвращаю представление из контроллера и использую 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");
}
Ага, он возвращает мне то, что я хочу. Ошибок в сети нет.
Невозможно помочь, не имея возможности увидеть, что на самом деле находится в body после ajax, и проверить css в инспекторе инструментов разработчика браузера
console.info(result), чтобы перепроверить. Убедитесь, что вы загружаетесь не через прокси, который вносит сомнительные изменения либо в первую страницу, либо в результат ajax.
Добавил фотографии, не уверен, поможет ли это, я сделал console.info и результат абсолютно нормальный. Просто все элементы ушли.
Попробуйте .empty().html( string ). Есть ли какая-нибудь мини-демонстрация для воспроизведения вашей проблемы?

Проблема в том, что URL-адрес, который вы используете, зависит от пути, по которому вы находитесь.
Замените «/ Restaurants» на «@ Url.Action (« Restaurants »,« controllerName »)», чтобы получить абсолютный URL-адрес действия.
Вы также можете проверить страницу (F12 в хроме) и посмотреть на вкладку сети, вы увидите ошибку 404 о действии ресторанов. Там вы можете получить информацию о том, какой URL-адрес вы попадаете с помощью вызова jquery.
Проблема не в этом, дело в том, чтобы добраться до контроллера и вернуть правильный результат. Проблема должна быть на стороне клиента.
Добавьте div внутрь тела и поместите html в этот документ. Менять body html не рекомендуется.
Попробовал, и он все еще блокирует все.
ваше действие должно возвращать частичное представление вместо представления. Как и в случае с представлением, вы возвращаете целую страницу с тегом html. Она не будет работать.
resultто, что вы ожидаете?