Поместите ajax $ get () в переменную javascript - PullRequest
0 голосов
/ 03 августа 2011

Мне нужно поместить результат ajax в переменную javascript.

Следующие работы

$.get('@Url.Action("_Edit", "News", null)/' + guid_News, function (html)
{
    $("#divEdit").html(html);
});

Не работает

var editHtml = "";
$.get('@Url.Action("_Edit", "News", null)/' + guid_News, function (html)
{
    editHtml= html;
});
$("#divEdit").html(editHtml);
* 1008также попробовал
var editHtml = "";
editHtml = $.get('@Url.Action("_Edit", "News", null)/' + guid_News, function (html)
{
    return html;
});
$("#divEdit").html(editHtml);

Как мне заставить его работать?

Ответы [ 2 ]

2 голосов
/ 03 августа 2011

Причина, по которой это не работает:

var editHtml = "";
$.get('@Url.Action("_Edit", "News", null)/' + guid_News, function (html)
{
    editHtml= html;
});
$("#divEdit").html(editHtml);

... заключается в том, что эта часть является закрытием функции :

function (html)
{
    editHtml= html;
}

Не выполняетсянемедленно и не блокирует выполнение операторов, следующих за ним.Он будет выполнен, когда сервер вернет свой ответ на запрос, но к этому времени ваш оператор $("#divEdit").html(editHtml); уже выполнен с editHtml, установленным в пустую строку.

Это должно работать:

var editHtml = "";
$.get('@Url.Action("_Edit", "News", null)/' + guid_News, function (html) {
    editHtml= html;
    setDivHtml();
});

function setDivHtml() {
    $("#divEdit").html(editHtml);
}
1 голос
/ 03 августа 2011

Я никогда не пытался использовать @Url.Action в вызове $.ajax (так что я не уверен на 100%, что это работает), но вы можете попробовать использовать его, так как это дает вам более детальный подход к запросам ajax.В обратном вызове success вы можете

$.ajax({
    url: '@Url.Action("_Edit", "News", null)/' + guid_News,
    type: 'GET',
    //async: false,
    success: function(data) {
        $('#divEdit').html(data);
    }
});

$.ajax опций даже принять параметр с именем async, который вы можете установить в false для вашего комментария в ответе @ aroth.

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