C# Asp.Net-UserControl-从母版页继承

C# Asp.Net-UserControl-从母版页继承,c#,user-controls,asp.net-3.5,master-pages,C#,User Controls,Asp.net 3.5,Master Pages,用户控件(ascx)是否可以从母版页执行类似herit的操作 我的观点是,在我的一个用户控件(仅由一种母版页使用)中,我想使用标记,但我不能,我只能在使用该用户控件的页面中 所以,我必须在使用该用户控件的每个页面中重复一些代码 更新 例如,每次我都需要添加如下内容: <asp:Content ID="cntJavascript" ContentPlaceHolderID="cphJavascript" runat="server"> <script type="text

用户控件(ascx)是否可以从母版页执行类似herit的操作

我的观点是,在我的一个用户控件(仅由一种母版页使用)中,我想使用
标记,但我不能,我只能在使用该用户控件的页面中

所以,我必须在使用该用户控件的每个页面中重复一些代码

更新 例如,每次我都需要添加如下内容:

<asp:Content ID="cntJavascript" ContentPlaceHolderID="cphJavascript" runat="server">
    <script type="text/javascript" src="<%= Url.Content("~/Content/js/UcJs.js") %>"></script>
</asp:Content>


这是因为,我希望我的所有Js文件都在母版页的同一位置,我只想添加所需的Js,我假设您的用户控件输出的javascript url对于每个用户控件都是不同的。我可以想出几种方法来做到这一点

在母版页中添加一个方法,如:

void AddJavascriptFile(string url) {
    this.ContentPlaceHolder1.Controls.Add(
        new LiteralControl(
            "<script type='text/javascript' src='" + url + "'></script>"));
}

这可能会为您指明正确的方向-我仍然不完全确定您正在尝试做什么。

我认为您正在寻找的答案是使用
页面。RegisterClient Scriptin在每个需要支持Javascript代码的控件中都包含
,每次都使用相同的键值

这样,无论有多少控件需要Javascript文件,它都只包含一次

internal static void RegisterJavascriptInclude(Page page, string includeFile)
{
    string key = includeFile.ToLowerInvariant();

    if (!page.ClientScript.IsClientScriptIncludeRegistered(key))
        page.ClientScript.RegisterClientScriptInclude(key, page.ResolveClientUrl(includeFile));
}
internal static void RegisterJavascriptInclude(Page page, string includeFile)
{
    string key = includeFile.ToLowerInvariant();

    if (!page.ClientScript.IsClientScriptIncludeRegistered(key))
        page.ClientScript.RegisterClientScriptInclude(key, page.ResolveClientUrl(includeFile));
}