Загрузка частичного представления в ASP.Net MVC с использованием JQuery - какой метод предпочтительнее? - PullRequest
4 голосов
/ 07 октября 2009

В самых недавних вопросах у меня были проблемы с этим. Мой код был:

$("#SearchResults").load("/Invoice/InvoiceSearchResults/");

И мне посоветовали использовать это вместо:

$.ajax({
        url: "/Invoice/InvoiceSearchResults/",
        type: 'GET',
        dataType: 'html', // <-- to expect an html response
        success: doSubmitSuccess
    });

с:

function doSubmitSuccess(result) {

$(".SearchResults").html(result);    

}

А потом кто-то любезно попытался помочь мне:

$.get(postUrl, function(data) {
            $("#posts").append(data);
            $('#ajaxLdMore').addClass('hideElement');
            $('#ldMore').removeClass('hideElement');
        });

Оказывается, моя проблема была в том, что я в идиоте, и я использовал селектор '#' вместо '.'

Мне просто интересно, стоит ли поменять код для любого из них?

Есть ли реальные плюсы и минусы каждого подхода или предпочтения?

Есть ли лучший способ, который еще никто не опубликовал?

Я не пытаюсь открыть огромные дебаты (я не думаю :)) - я просто хочу немного больше понять об этом.

Спасибо

Ответы [ 2 ]

3 голосов
/ 07 октября 2009

Оба будут работать, но я лично полагаюсь на решение jQuery, поскольку оно более долговечно, чем решение Microsoft AJAX. Переход на jQuery даже для MS очень очевиден, поскольку они сами обняли библиотеку.

2 голосов
/ 07 октября 2009

Использование $ .ajax дает вам больше гибкости. Я считаю это особенно полезным для обработки ошибок.

Кроме того, вы можете объединить это в один блок кода, если вы не используете doSubmitSuccess в других местах

$.ajax({
        url: "/Invoice/InvoiceSearchResults/",
        type: 'GET',
        dataType: 'html', // <-- to expect an html response
        success: function(result){
            $(".SearchResults").html(result);
        },
        error: function(err){
            //handle errors here
        }
    }); 
...