1

私の ASP.NET MVC 2 Web アプリケーションでRenderActionは、Web サイトの「フラッシュ メッセージ」領域と呼ばれるものに HTML を表示するために利用しています。Hello <%: Html.DisplayTextFor(m => m.Username) %>フラッシュ領域とは、ユーザーがログインしたときなど、前の要求に関するメッセージを含む上部近くの強調表示された領域を意味します。

私が取り組んでいる 1 つのフラッシュ メッセージは、もう少し複雑です。応答に Javascript コードのブロックを追加する必要がありますが、書籍High Performance JavaScriptscriptで推奨されているように、要素を終了</body>タグの前に配置したいと考えています。

通常のビューでは、ページの下部に要素<asp:Content ContentPlaceHolderID="FlashScriptElements" runat="server"><script> ... </script></asp:Content>を配置するために使用します。script残念ながら、でレンダリングされた部分ビューで同じことを試みると、RenderAction「コンテンツ コントロールは、マスター ページを参照するコンテンツ ページまたはネストされたマスター ページのトップレベル コントロールである必要があります」というパーサー エラーが発生します。

<asp:Content>マスターページの対応する場所にコンテンツを挿入する部分ビューで使用できるようなものはありますか?

4

1 に答える 1

2

<asp:Content>RenderAction は、子アクション メソッドを実行し、応答を収集し、それを親メソッドのビューに貼り付けるコードを持つことと同等であるため、RenderAction ではサポートされていません。

できることは、必要なスクリプトをHttpContextBase.Itemsコレクションのどこかに追加することです。次に、ドキュメントの最後の直前のマスター ページで、登録されたスクリプトを取得して印刷します。

于 2011-01-20T01:21:33.337 に答える