Was ist die geeignete Methode zum Rendern einer untergeordneten Vorlage?
Und was ist der Unterschied? Beide scheinen für mich zu arbeiten.
Und warum funktioniert das @Html.RenderPartial()
nicht mehr?
quelle
Was ist die geeignete Methode zum Rendern einer untergeordneten Vorlage?
Und was ist der Unterschied? Beide scheinen für mich zu arbeiten.
Und warum funktioniert das @Html.RenderPartial()
nicht mehr?
Html.Partial("MyView")
Rendert die "MyView" -Ansicht in eine MvcHtmlString
. Es folgt den Standardregeln für die Ansichtssuche (dh überprüfen Sie das aktuelle Verzeichnis und dann das Shared
Verzeichnis).
Html.RenderPartial("MyView")
Tut das Gleiche wie Html.Partial()
, außer dass es seine Ausgabe direkt in den Antwortstrom schreibt. Dies ist effizienter, da der Ansichtsinhalt nicht im Speicher gepuffert wird. Da die Methode jedoch keine Ausgabe zurückgibt, @Html.RenderPartial("MyView")
funktioniert sie nicht. Sie müssen den Aufruf stattdessen in einen Codeblock einschließen : @{Html.RenderPartial("MyView");}
.
RenderPage("MyView.cshtml")
Rendert die angegebene Ansicht (identifiziert durch Pfad und Dateiname anstelle des Ansichtsnamens) direkt in den Antwortstrom, z Html.RenderPartial()
. Sie können der Ansicht ein beliebiges Modell hinzufügen, indem Sie es als zweiten Parameter hinzufügen
RenderPage("MyView.cshtml", MyModel)
@Html.Partial("MyView")
vs.@{Html.RenderPartial("MyView");}
RenderPage
? Ich möchte eine andere Seite verschachteln, indem ich einen bestimmten Abfrageparameter spezifiziere, der wiederum die Daten auf dieser Seite filtert und außerdem das eigene Layout entfernt.ich bevorzuge
Über
Nur weil die Syntax einfacher und lesbarer ist. Davon abgesehen scheint es keine funktionalen Unterschiede zu geben.
BEARBEITEN: Ein Vorteil von RenderPartial ist, dass Sie nicht den gesamten Pfad oder die Dateierweiterung angeben müssen, um die allgemeinen Stellen automatisch zu durchsuchen.
quelle
RenderPage
wegen der Syntax zu.Die RenderPartial- Methode gibt kein HTML-Markup wie die meisten anderen Hilfsmethoden zurück . Stattdessen wird der Inhalt direkt in den Antwortstrom geschrieben, weshalb wir ihn wie eine vollständige Zeile von C # mit einem Semikolon aufrufen müssen.
Dies ist etwas effizienter als das Puffern des gerenderten HTML-Codes aus der Teilansicht, da er ohnehin in den Antwortstrom geschrieben wird. Wenn Sie eine konsistentere Syntax bevorzugen, können Sie die Html.Partial- Methode verwenden, die genau das Gleiche wie die RenderPartial- Methode tut , jedoch ein HTML-Fragment zurückgibt und als @ Html.Partial ("Produkt", S.) verwendet werden kann.
quelle
Wir können das Modell auch mit Teilansichten übergeben. @ Html.Partial ("MyView", "MyModel");
quelle
Das Obige funktioniert nicht in ASP.NET MVC. Es funktioniert nur in Webseiten.
Sie müssen das oben genannte in ASP.NET MVC verwenden.
quelle