Abschnitt in Teilansicht verwenden

8

In meinem geteilten Layout möchte ich einen "scripts" -Abschnitt haben, um ihn mit allen Skripten zu stopfen, die für die Seitenfunktion benötigt werden.

Layout.cshtml

%Vor%

Also, meine Ansicht lädt ein bestimmtes Javascript, und ich möchte, dass es im "scripts" -Abschnitt ist, und es funktioniert.

Index.cshtml

%Vor%

Zum Schluss rendert meine Ansicht ein partielles und ich habe ein Javascript, dass diese teilweise lädt.

_AppSelector.cshtml

%Vor%

... und das ist NICHT funktioniert - JavaScript-Tag ist NICHT im Abschnitt "scripts" gerendert

Wie kann ich das tun?

    
OzrenTkalcecKrznaric 12.08.2013, 09:20
quelle

2 Antworten

11

Wie in Diese Frage , es ist nicht möglich, Abschnitte in einer Teilansicht zu verwenden:

  

Abschnitte funktionieren nicht in Teilansichten und das ist von Entwurf. Sie können einige benutzerdefinierte Helfer verwenden, um ein ähnliches Verhalten zu erreichen, aber ehrlich gesagt liegt es in der Verantwortung der Ansicht, die notwendigen Skripte einzubeziehen, nicht die Verantwortung der Teilnehmenden. Ich würde Ihnen empfehlen, den Abschnitt @scripts der Hauptansicht zu verwenden, damit die Teilkritiker sich nicht um Skripts kümmern müssen.

Sie sollten den Skriptverweis der Hauptansicht hinzufügen, die auf das Teil verweist.

    
Ollie P 12.08.2013, 09:55
quelle
3

Dies ist meine erste Antwort!

Ich arbeite seit Jahren mit Webforms und jetzt habe ich es mit MVC 5. Bit hard.

Vielleicht ist die falsche Lösung, aber funktioniert:)

In Layout.cshtml. Fügen Sie den zweiten Abschnitt "ScriptsPartial" hinzu

%Vor%

Fügen Sie in Index.cshtml ", new ViewDataDictionary (ViewData) {{" ViewPage ", this}}"

hinzu %Vor%

Entfernen Sie in _AppSelector.cshtml das

%Vor%

Fügen Sie dies in _AppSelector.cshtml an beliebiger Stelle hinzu

%Vor%

Senden Sie die Ansicht einfach an die PartialView (keine Parent-Eigenschaft wie in WebForms?) und verwenden Sie sie, um dem Abschnitt "ScriptsPartial" Inhalte hinzuzufügen.

"ScriptsPartial" wird benötigt, weil DefineSection einen Fehler "Abschnitt bereits definiert: Skripte"

ausgibt

So kann nicht mehr als eine PartialView den Abschnitt "ScriptsPartial" verwenden ... nicht so gute Lösung.

Mit freundlichen Grüßen

Paco Ferre

    
Paco Ferre 23.12.2014 23:23
quelle

Tags und Links