Frage

Ich habe heute ein ziemlich neues Projekt von ViewPages zu Razor wurde bewegt, und alles scheint gut zu gehen. Außer ich versuche Html.Action zu verwenden, um eine Benutzersteuerung zu machen, und es wird nichts machen.

Also ich habe eine Geteilt / _Layout.cshtml-Datei, die in Home / Index.cshtml

verwiesen wird,

Index.cshtml hat die folgenden:

<article>

@Html.Action("LatestBlogsMainPanelWidget", "Blogs")

...

</article>

Ich habe setzen Fallen im BlogsController, damit ich weiß, dass die angefordert wird. Ich weiß auch, dass ein Modell zurückgeführt wird, dass die LatestBlogsMainPanelWidget der Ansicht Motor gefunden wird, und sogar einige Dummy-Razor-Syntax-Code wird ausgeführt: @ { var s = "Hallo"; }

aber die einfache HTML in dieser Datei macht es nicht an den Browser. Ich habe andere versucht (früher Arbeits) partials zu und sie werden auch nicht (Quelltext anzeigen auf der Seite bestätigt es ist nicht vorhanden) angezeigt werden.

Ich habe auch versucht, zur Substitution @ {Html.RenderAction (...); } ohne Erfolg. HTML beiden Seiten des @ Html.Action wird erscheinen, damit ich weiß Index.cshtml richtig angezeigt wird.

Noch seltsam die _Layout Datei hat auch Html.Action Befehle und sie tun erscheinen in Ordnung.

Ich bin wirklich nicht sicher, was anderes zu überprüfen, oder wie zu bestätigen, dass die Pipeline der HTML erhält. Kann mir jemand helfen überhaupt?

Danke!

War es hilfreich?

Lösung 3

Das Gehirn ist eine lustige Sache, und trotz auf diese gestern mehrere Stunden zu verbringen, nahm es meinen Hund mir oben in der Mitte der Nacht für ein wee für meinen Unter Erwachen auf der Antwort zu stolpern.

Wenn dies hatte jemand anderes ratlos, ich bin nicht überrascht. Ich hatte erwähnt, nicht, weil es mir nicht angebrochen, dass ich mit einem Teil-Level-Caching-System ähnlich wie einen entworfen von Steve Sanderson. Es fiel mir plötzlich, dass dies die Ursache sein könnte, da nach dem besten Wissen Razor Seiten als Webformular Seiten weit weniger Pipeline-Verarbeitung durchlaufen. Die Caching-Filter werden wahrscheinlich nicht tun, was sie tun muss, oder zur richtigen Zeit.

Ich habe bestätigt, dass es in Frage zu den Aktionen den Output Filter Auskommentierung des Problem behoben hat.

habe ich keine Ahnung, ob dieses Problem gilt für das Caching auf Seitenebene ist, da es nicht etwas, was ich nützlich finden.

Andere Tipps

Setzen Sie ein Layout-= null auf der Teilansicht und es wird funktionieren.

Versuchen Sie diese:

@ {Html.RenderAction ( "LatestBlogsMainPanelWidget", "Blogs");}

Während Lösungen für dieses Problem suchen, habe ich für nicht korrekte Wiedergabe von Html.Action drei Maßen Probleme herauszufinden und Html.RenderAction. Bitte überprüfen Sie haben unten die Dinge richtig oder nicht getan.

  1. In Ihrem PartialView oder anzeigen Sie haben festgelegt, @ {Layout = null;} .
  2. Verwenden Rückkehr PartialView anstelle von .
  3. Dekorieren Sie Ihre Aktion mit [ChildActionOnly] Attribute.

Ich hoffe, über alle Schritte, indem Sie Ihre Probleme lösen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top