Вызов частичного представления MVC2 с использованием jquery возвращает пустую строку - PullRequest
0 голосов
/ 15 апреля 2010

У меня есть проблема, когда у меня есть частичное представление, которое возвращает HTML для отображения. Он вызывается, когда что-то нажимается на странице с помощью jquery. Проблема в том, что независимо от того, как я это называю, я получаю пустую строку, даже если она сообщает об успехе. Это происходит со мной, используя Chrome, против моей локальной машины.

Мой контроллер выглядит так:

public ActionResult MyPartialView()
{
    return PartialView(model);
}

Я пробовал jquery, используя .get (), .post () и .load (), и у всех были одинаковые результаты. Вот пример использования .post ():

$.post(url, function (data)
{
    alert(data);
});

Результат всегда возвращается в виде пустой строки. Я могу перейти к частичному представлению в браузере вручную, и я возвращаю нужный HTML. URL-адрес, который я использую для его вызова, полностью разрешен, поэтому он выглядит как "http://localhost/controller/mypartialview", а не с использованием относительного пути" / controller / mypartialview ", который, по моему мнению, был исходной проблемой.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2010

Я понял это. Сначала я подумал, что должен полностью разрешить URL, начиная с http: //, но случайно забыл указать порт, который использовал веб-сервер visual studio. Он просто использовал http://localhost/ вместо http://localhost:2858/ в качестве базы. Как только я изменил его обратно, чтобы использовать относительный путь, он начал работать. Я предполагаю, что jquery разрешает относительные пути для вас на основе URL текущей страницы в методах ajax.

0 голосов
/ 15 апреля 2010

Трудно сказать, в чем проблема. Если вы правильно просматриваете HTML-код при доступе к тому же URL-адресу через браузер, это означает, что ваша серверная сторона хороша (w / HTTP GET).

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

    $.get( 'http://localhost/controller/mypartialview', function(data){ alert(data); } );

  • Вы установили глобальные параметры $.ajax? (Не то, что вам нужно, просто, может быть, вы что-то настраивали ранее, и это портит ваш новый запрос)

  • Убедитесь, что вы не отправляете запрос, когда принимаете его через браузер. Что может заставить его работать через браузер, а не через jQuery.

Я определенно рекомендую вам установить Firefox и Firebug , чтобы улучшить отладку ваших запросов AJAX.

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