如何在没有路径问题的情况下将jquery包含在母版页头中?

时间:2011-05-23 05:22:52

标签: javascript jquery asp.net header master-pages

我试过这个

<head id="Head1" runat="server">
<title>Back Office</title>
<link href="~/Styles/MasterPage.css" rel="stylesheet" type="text/css" />
<link href="Styles/custom-theme/jquery-ui-1.8.12.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/scripts/jquery-1.5.1.min.js") %>"></script>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>

错误消息是

enter image description here

我想太多了,只是发现使用它      遗憾

2 个答案:

答案 0 :(得分:3)

看起来,您正在尝试动态添加控件。在这种情况下,您可以使用以下代码

var control = new HtmlGenericControl("script") ;
control.Attributes.Add("type", "text/javascript");
control.Attributes.Add("src", Page.ResolveClientUrl("~/scripts/jquery-1.5.1.min.js"));
//CDN will be best while hosting the application
//control.Attributes.Add("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js");
this.Page.Header.Controls.Add(control);

答案 1 :(得分:1)

尝试将DataBinding与ResolveUrl一起使用

<script src="<%# ResolveUrl("~/Scripts/jquery-1.5.1.min.js") %>" 
          type="text/javascript"></script>

然后在你的代码后面调用Header的Databind

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        Page.Header.DataBind();
    }

如果您开始收到有关ViewState的错误,则可能需要在标题上禁用它。

<head runat="server" enableviewstate="false">