Laden einer Teilansicht in ASP.NET MVC mit JQuery - Welche Methode wird bevorzugt?
-
20-09-2019 - |
Frage
In sehr jüngsten Fragen hatte ich Probleme damit. Mein Code war:
$("#SearchResults").load("/Invoice/InvoiceSearchResults/");
Und mir wurde empfohlen, dies stattdessen zu verwenden:
$.ajax({
url: "/Invoice/InvoiceSearchResults/",
type: 'GET',
dataType: 'html', // <-- to expect an html response
success: doSubmitSuccess
});
mit:
function doSubmitSuccess(result) {
$(".SearchResults").html(result);
}
Und dann versuchte mir jemand anderes zu helfen, mit:
$.get(postUrl, function(data) {
$("#posts").append(data);
$('#ajaxLdMore').addClass('hideElement');
$('#ldMore').removeClass('hideElement');
});
Es stellte sich heraus, dass mein Problem war, dass ich in Idiot Abd den Selektor '#' statt '' verwendet habe.
Ich frage mich nur, ob ich meinen Code gegen diese tauschen soll.
Gibt es echte Vor- und Nachteile jedes Ansatzes oder ist es Präferenz?
Gibt es einen besseren Weg, den noch niemand gepostet hat?
Ich versuche nicht, eine große Debatte zu öffnen (ich glaube nicht :)) - ich möchte nur ein bisschen mehr darüber verstehen.
Vielen Dank
Lösung
Beide werden funktionieren, aber ich verlasse mich persönlich auf die Jquery-Lösung, da sie langfristiger als eine Microsoft Ajax-Lösung haltbarer ist. Die Verlagerung zu JQuery selbst durch MS ist sehr offensichtlich, da sie die Bibliothek stark selbst angenommen haben.
Andere Tipps
Die Verwendung von $ .Ajax gibt Ihnen mehr Flexibilität. Ich finde dies besonders nützlich für die Fehlerbehandlung.
Außerdem können Sie das in einem einzelnen Codeblock kombinieren, wenn Sie DosubMitsuccess anderswo nicht wiederverwenden
$.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
}
});