对于这是否可能存在悲观,但我想做的是从视图上的用户控件填充母版页上的ContentPlaceholder。
更具体地说,我想在我的母版页中添加一个块,如:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
<asp:ContentPlaceHolder ID="StartupScript" runat="server" />
});
</script>
然后在我的页面中,我添加了我的用户控件,如:
<%Html.RenderPartial("MyUserControl");%>
然后让MyUserControl将它想要在启动时运行的一些javascript放到母版页的StartupScript占位符中,如:
<div id="MyUserControl"></div>
<Content ID="StartupScriptContent" ContentPlaceholderID="StartupScript" runat="server">
$("#MyUserControl").load(...);
</Content>
如果不明显,javascript不是实际的用例。如果有人好奇,我想在DOM加载时初始化DynaTree jQuery插件,只有当UserControl在p
时才会答案 0 :(得分:1)
一个控件(包括MVC中的ASCX部分)简单地呈现在你告诉它在父页面/控制标记中呈现的地方。
因此,如果您希望控件的输出最终进入ContentPlaceholder
,请在包含Content
标记的页面中为其包装标记。但是将Content
标记直接放在控件/部分中是无效的。
我怀疑可能有另一种方法来做你正在考虑的事情;也许其他人会对此有一个大脑放屁,或者你可能会详细说明你为什么需要它。