来自UserControl / PartialView的ASP.Net MVC3填充母版页面部分

时间:2011-05-12 14:23:50

标签: asp.net-mvc

对于这是否可能存在悲观,但我想做的是从视图上的用户控件填充母版页上的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

时才会

1 个答案:

答案 0 :(得分:1)

一个控件(包括MVC中的ASCX部分)简单地呈现在你告诉它在父页面/控制标记中呈现的地方。

因此,如果您希望控件的输出最终进入ContentPlaceholder,请在包含Content标记的页面中为其包装标记。但是将Content标记直接放在控件/部分中是无效的。

我怀疑可能有另一种方法来做你正在考虑的事情;也许其他人会对此有一个大脑放屁,或者你可能会详细说明你为什么需要它。