当Master页面已经声明Jquery时,将Jquery添加到aspx页面

时间:2014-02-22 19:10:41

标签: c# jquery asp.net css master-pages

我需要一些帮助,找出将jquery代码添加到我的aspx文件的最佳方法。我们在VS2008中使用母版页有一个很大的前端解决方案。在母版页中,我们有一个ContentPlaceHolder,您可以在其中向<head>添加内容,但占位符的位置在代码之上,该代码声明了jquery的本地路径。我需要将ContentPlaceHolder移动到jquery下面的位置吗?如果是这样,不能这样做会导致一些潜在的问题吗?我尝试在脚本声明标记下添加一个额外的ContentPlaceHolder,但是这导致了ViewState错误(我认为与我为我的页面添加的代码背后的代码允许用于IE的CSS3)。

以下是主文件中的相关代码:

<%@ Master Language="C#" AutoEventWireup="True" CodeBehind="Class.Master.cs" Inherits="Company.Project.Masters.Class" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">

<title><%# Page.Title %></title>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<asp:ContentPlaceHolder ID="cphHead" runat="server" >
    </asp:ContentPlaceHolder>
<link href="~/inc/style.css" rel="stylesheet" type="text/css" />
<script src='<%# ResolveUrl("~/inc/utils.js") %>' type="text/javascript"></script>
<script type="text/javascript">
//some js stuff here
<style type="text/css">
        // some css stuff here
</style>

<script language="javascript" type="text/javascript" src='local/path/to/jquery' ></script>
<script language="javascript" type="text/javascript" src='local/path/to/jquery-ui-1.10.3.custom.min.js") %>'></script>

<script type="text/javascript">
    $(document).ready(function() {      
        //some jquery stuff here
        })
    }); 
</script>
</head>

下面是我添加到页面的.cs文件中的代码,以允许CSS3元素在IE中工作。此错误看起来与ViewState错误

有关
protected void Page_Load(object sender, EventArgs e)
{     
       HtmlMeta xuac = new HtmlMeta();
        xuac.HttpEquiv = "X-UA-Compatible";
        xuac.Content = "IE=edge";
        Header.Controls.AddAt(0, xuac);
}

当我在MasterPage中添加新的ContentPlaceHolder时,我收到错误:

  

无法加载视图状态。 viewstate所在的控制树   正在加载必须与用于保存的控制树匹配   在上一个请求期间查看状态。例如,添加时   动态控制,回发期间添加的控件必须匹配   初始期间添加的控件的类型和位置   请求。

1 个答案:

答案 0 :(得分:1)

逐一来到你的所有观点。

您可以在母版页中拥有多个内容占位符,您可以在其他页面中引用它们。您应该在jQuery脚本之后添加contentplaceholder。并且从子页面向此占位符添加内容,它不应该产生任何类型的问题。

请分享您在添加额外的contentplaceholder时遇到的视图状态错误。您可以浏览浏览器控制台以获取有关视图状态问题的更多信息。