在我的ASP.NET MVC 2 Web应用程序中,我使用 RenderAction 要在我称为网站的“闪存消息”区域中显示HTML。按照闪光区域,我的意思是顶部附近的突出显示区域,其中包含有关先前请求的消息,例如 Hello <%: Html.DisplayTextFor(m => m.Username) %> 当用户登录时。

我正在处理的一条闪存消息更为复杂。它需要在响应中添加一个JavaScript代码块,但我想放置 script 结束前的元素 </body> 按照书中的建议标记 高性能JavaScript.

从正常的角度来看,我使用 <asp:Content ContentPlaceHolderID="FlashScriptElements" runat="server"><script> ... </script></asp:Content> 放置 script 页面底部的元素。不幸的是,如果我尝试在呈现的部分视图中尝试 RenderAction, ,我得到解析器错误:“内容控件必须是内容页面或引用主页的嵌套主页中的顶级控件”。

有类似的东西吗 <asp:Content> 我可以在部分视图中使用,将内容插入主页的相应位置?

有帮助吗?

解决方案

<asp:Content> 不支持RenderAction,因为RenderAction等于拥有将执行您的儿童操作方法,收集响应然后将其粘贴到父级方法的视图的代码。

您可以做的是添加所需的脚本 HttpContextBase.Items 收藏。然后在文档末尾的主页上检索注册脚本并将其打印出来。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top