有没有办法使用像这样的东西?在使用 RenderAction 渲染的部分视图中?

发布于 2024-10-12 17:58:10 字数 898 浏览 8 评论 0原文

在我的 ASP.NET MVC 2 Web 应用程序中,我使用 RenderAction 在我所说的网站的“flash message”区域中显示 HTML。我所说的闪光区域是指靠近顶部的突出显示区域,其中包含有关上一个请求的消息,例如 Hello <%: Html.DisplayTextFor(m => m.Username) %>当用户登录时。

我正在处理的一条闪现消息有点复杂。它需要向响应中添加一段 Javascript 代码,但我想按照书中的建议将 script 元素放置在结束 标记之前 < a href="http://oreilly.com/catalog/9780596802806/" rel="nofollow">高性能 JavaScript

在正常视图中,我使用 script 元素放置在页面底部。不幸的是,如果我在使用 RenderAction 呈现的部分视图中尝试相同的操作,我会收到解析器错误“内容控件必须是内容页面或引用的嵌套母版页中的顶级控件”母版页”。

是否有类似 的东西可以在部分视图中使用,它将内容插入母版页的相应位置?

In my ASP.NET MVC 2 web application, I utilize RenderAction to display HTML in what I call the "flash message" area of the web site. By flash area, I mean a highlighted area near the top that contains a message about the previous request, such as Hello <%: Html.DisplayTextFor(m => m.Username) %> when the user logs in.

One flash message that I am working on is a bit more complex. It needs to add a block of Javascript code to the response, but I want to place the script element before the end </body> tag as recommended in the book High Performance JavaScript.

In a normal view, I use <asp:Content ContentPlaceHolderID="FlashScriptElements" runat="server"><script> ... </script></asp:Content> to place script elements at the bottom of the page. Unfortunately, if I attempt the same in a partial view that is rendered with RenderAction, I get the Parser Error "Content controls have to be top-level controls in a content page or a nested master page that references a master page".

Is there something like <asp:Content> that I can use in partial views which will insert the contents into the corresponding spot of the master page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

檐上三寸雪 2024-10-19 17:58:10

RenderAction 不支持 ,因为 RenderAction 相当于具有执行子操作方法、收集响应,然后将其粘贴到父方法的视图中的代码。

您可以做的是将所需的脚本添加到 HttpContextBase.Items 集合中的某个位置。然后在文档末尾之前的主页中检索注册的脚本并将其打印出来。

<asp:Content> is not supported with RenderAction because RenderAction is equivalent to having code that would execute your child action method, gathered the response, and then pasted it in the parent method's view.

What you could do is to add the scripts that you need somewhere in to the HttpContextBase.Items collection. Then in your master page right before the end of the document retrieve the registered scripts and print them out.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文