我需要一些帮助,找出将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所在的控制树 正在加载必须与用于保存的控制树匹配 在上一个请求期间查看状态。例如,添加时 动态控制,回发期间添加的控件必须匹配 初始期间添加的控件的类型和位置 请求。
答案 0 :(得分:1)
逐一来到你的所有观点。
您可以在母版页中拥有多个内容占位符,您可以在其他页面中引用它们。您应该在jQuery脚本之后添加contentplaceholder。并且从子页面向此占位符添加内容,它不应该产生任何类型的问题。
请分享您在添加额外的contentplaceholder时遇到的视图状态错误。您可以浏览浏览器控制台以获取有关视图状态问题的更多信息。