resdernactionでレンダリングされた部分的なビュー内でのようなものを使用する方法はありますか?
-
12-10-2019 - |
質問
私のASP.NET MVC 2 Webアプリケーションで、私は利用します RenderAction
Webサイトの「Flashメッセージ」領域と呼ばれるものにHTMLを表示します。フラッシュエリアとは、上部近くのハイライトされた領域を意味します。 Hello <%: Html.DisplayTextFor(m => m.Username) %>
ユーザーがログインするとき。
私が取り組んでいる1つのフラッシュメッセージはもう少し複雑です。 JavaScriptコードのブロックを応答に追加する必要がありますが、 script
終了前に要素 </body>
本で推奨されているタグ 高性能JavaScript.
通常のビューでは、私は使用します <asp:Content ContentPlaceHolderID="FlashScriptElements" runat="server"><script> ... </script></asp:Content>
場所へ script
ページの下部にある要素。残念ながら、でレンダリングされている部分的なビューで同じことを試みた場合 RenderAction
, 、パーサーエラー「コンテンツコントロールは、コンテンツページまたはマスターページを参照するネストされたマスターページのトップレベルコントロールでなければなりません」。
何かがありますか <asp:Content>
マスターページの対応するスポットに内容を挿入する部分ビューで使用できることは?
解決
<asp:Content>
Renderactionは、子どものアクション方法を実行し、応答を収集し、親メソッドのビューに貼り付けたコードを持つことと同等であるため、Renderactionでサポートされていません。
あなたができることは、あなたが必要とするスクリプトをどこかに追加することです HttpContextBase.Items
コレクション。次に、ドキュメントの最後の直前のマスターページで、登録されたスクリプトを取得して印刷します。