【问题标题】:How to include jquery in masterpage header without path problems?如何在没有路径问题的情况下在母版页标题中包含 jquery?
【发布时间】:2011-05-23 05:22:51
【问题描述】:

我试过了

<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>

错误信息是

我想太多了,就是用这个找的 对不起

【问题讨论】:

  • 我已从您的问题中复制您的行并检查,我没有遇到问题。
  • 您不需要解析资源上的 URL...
  • 是的,我刚刚发现使用这个
  • @Muhammad 我使用 Visual Studio 2010,asp.net 4。我不知道它可能会有所不同。
  • 是的,我已经签入了 VS 2010 和 asp.net 4

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


【解决方案1】:

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

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);

【讨论】:

  • 是的,你可以把它放在 Page_Load。
  • 页面加载前所需的标题已经加载,这也不起作用,但谢谢。
  • 如果您想先保留脚本。你可以使用AddAt函数this.Page.Header.Controls.AddAt(0, control)
【解决方案2】:

尝试使用带有 ResolveUrl 的 DataBinding

<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">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2012-10-21
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多