Frage

In meiner ASP.NET MVC 2 Web-Anwendung, ich verwende RenderAction HTML angezeigt werden in dem, was ich die „Flash-Mitteilung“ -Bereich der Website aufrufen. Mit dem Flash-Bereich, meine ich einen markierten Bereich in der Nähe der Spitze, die eine Mitteilung über die vorherige Anforderung, wie Hello <%: Html.DisplayTextFor(m => m.Username) %> enthält, wenn sich der Benutzer anmeldet.

Eine Flash-Mitteilung, dass ich arbeite ist ein wenig komplexer. Es braucht einen Block von Javascript-Code auf die Antwort hinzufügen, aber ich mag das script Element vor dem Ende </body> Tag legen wie in dem Buch High Performance JavaScript .

In einer normalen Ansicht, verwende ich <asp:Content ContentPlaceHolderID="FlashScriptElements" runat="server"><script> ... </script></asp:Content> an Ort script Elemente am unteren Rand der Seite. Leider, wenn ich das gleiche in einer Teilansicht versuchen, mit RenderAction gemacht wird, ich die Parser-Fehler erhalten „Content Kontrollen haben Top-Level-Kontrollen in einer Content-Seite oder eine verschachtelte Masterseite sein, dass Referenzen eine Masterseite“.

Gibt es so etwas wie <asp:Content>, dass ich in Teilansichten verwenden kann, welche den Inhalt in die entsprechenden Stelle der Masterseite eingefügt werden?

War es hilfreich?

Lösung

<asp:Content> nicht mit Render unterstützt, da Render entspricht Code mit, dass Ihre Kind Aktion Methode ausführen würde, die Antwort gesammelt und dann in der übergeordneten Methode nach Ansicht eingefügt werden.

Was könnten Sie tun, ist die Skripte hinzufügen, dass Sie irgendwo müssen Sie die HttpContextBase.Items Sammlung. Dann in der Masterseite kurz vor dem Ende des Dokuments der registrierten Scripts abrufen und ausdrucken.

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