問題:
詳細ページとマスター ページを使用する MVC2 プロジェクトがあります。初めて詳細ページを実行すると、すべてがうまくいきます。すべての JavaScript と jquery が問題なく実行されます。ただし、ページネーションが実行されると (NerdDinner チュートリアルの PaginatedList を使用して)、2 番目のページは jquery オブジェクトをロードしません。(JQuery = "未定義")。
2 番目のページが機能しない理由がわかりません。動作を示すために、ソリューションを次の最小限のコードに切り詰めました。
Master.aspx ページ:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>
<asp:ContentPlaceHolder ID="TitleContent" runat="server" />
</title>
<script src="../../Scripts/jquery-1.4.2.min.js"
type="text/javascript" language="javascript"></script>
<script type="text/javascript" language="javascript">
$(function () {
alert('MasterPage');
});
</script>
<%-- scripts from child pages get inserted here --%>
<asp:ContentPlaceHolder ID="ScriptContent" runat="server" />
</head>
<body>
<div id="main">
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</div>
</body>
Details.aspx ページ:
<%@ Page Title="" Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<WidgetViewModel>" %>
<asp:Content ID="TitleContent"
ContentPlaceHolderID="TitleContent"
runat="server">
The Title
</asp:Content>
<asp:Content ID="Content3"
ContentPlaceHolderID="ScriptContent"
runat="server">
<script type="text/javascript" language="javascript">
alert('DetailsPage');
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%-- No Content --%>
</asp:Content>
- JQuery ライブラリは、私がロードしている唯一のライブラリです。
- 上記のスクリプトは、私が持っている唯一のスクリプトです。
詳細のソース/{somequery} (両方のアラートが期待どおりに表示されます)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
The Title
</title>
<script src="../../Scripts/jquery-1.4.2.min.js"
type="text/javascript" language="javascript"></script>
<script type="text/javascript" language="javascript">
$(function () {
alert('MasterPage');
});
</script>
<script type="text/javascript" language="javascript">
alert('DetailsPage');
</script>
</head>
<body>
<div id="main"></div>
</body>
</html>
Details/{somequery}/1 のソース コード (Details.aspx アラートのみが機能します)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
The Title
</title>
<script src="../../Scripts/jquery-1.4.2.min.js"
type="text/javascript" language="javascript"></script>
<script type="text/javascript" language="javascript">
$(function () {
alert('MasterPage');
});
</script>
<script type="text/javascript" language="javascript">
alert('DetailsPage');
</script>
</head>
<body>
<div id="main"></div>
</body>
</html>