Wie render partial view in MVC5 via ajax-Aufruf einer controller-und return-HTML
Wie kann man AJAX verwenden, laden Sie eine vollständige Teilansicht in html gerendert (also ich muss nur die div.html)
Brauche ich den ajax-call, call-controller-action, die gerendert wird eine vollständige Teilansicht (rot) und fügen es an das Ende der aktuell geladen?
[Ich weiß, wie ich zum Anhängen an DOM-und AJAX-Aufrufe]
Muss ich wissen, was ist die beste Sanitär Ansatz für diese, welche Art von ActionResult sollte die Aktion " zurück und wenn es einen bereits eingebauten Mechanismus für diese so zu vermeiden, das Rad neu erfinden?
InformationsquelleAutor der Frage Paceman | 2015-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es built-in ajax-Helfer in ASP.NET MVC, die Sie abdecken können grundlegende Szenarien.
Müssen Sie installieren und siehe
jquery.unobtrusive-ajax
JavaScript-Bibliothek ( + jQuery-Abhängigkeit). Dann in der main-view (sagen wir index.cshtml) setzen Sie folgenden code:Index.cshtml
Hinweis:
@Ajax.ActionLink
Helfer akzeptiertAjaxOptions
parameter für weitere Anpassungen.In der Steuerung (sagen wir mal HomeController.cs) sollten Sie wieder
PartialViewResult
:Schließlich definieren Sie die MorePosts.cshtml Teilansicht:
Und das ist es. Wenn einige Benutzer klickt auf
Load More
- Taste, weitere Beiträge werden geladen.Hinweis 1: Sie implementieren können
OnBegin
Funktion zu implementieren, die die eigentliche Logik für die Entscheidung, die die nächsten posts zu laden (ex. Holen Sie sich die id des letzten post geladen und an den server senden).Note 2: das gleiche Ergebnis kann erzielt werden mit benutzerdefinierten
jQuery.ajax
Anrufe (ohne jquery.unaufdringlich). Der einzige Unterschied wird sein, das Handbuch ajax-Aufrufe und klicken Sie auf Ereignisse.Hoffe, das hilft. Ich kann schreiben, ein ausführlicheres Beispiel, wenn nötig.
InformationsquelleAutor der Antwort Viktor Bahtev
Ich empfehle immer die
Westwind.Web.Mvc
Bibliothek von NUGET und Sie können alle Ihre Ansichten, um eine Zeichenfolge zurück, wie ein JSON-ErgebnisAls @Guruprasad sagte in den Kommentaren, können Sie einfach zurück eine teilweise Ansicht von einem MVC controller mit
return PartialView(model)
aber mit der RenderPartialView bekommen Sie als string, können Sie die Ausgabe als JSON-zusammen mit anderen-Werte, falls erforderlich. Dies funktioniert, wenn Sie wählen, zu verwenden, WebAPI, weil Sie nicht die Fähigkeit haben, für das Rendern einer Ansicht integriert.InformationsquelleAutor der Antwort Luke