Составные сценарии с использованием диспетчера сценариев ASP.NET - PullRequest
0 голосов
/ 26 ноября 2011

Я пытаюсь составить сценарии, используя этот код:

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    <script>
        $(document).ready(function () {
            alert("asd");
        });
    </script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:ScriptManager runat="server" ID="scMan1">
        <CompositeScript>
            <Scripts>
                <asp:ScriptReference Path="~/Scripts/jquery-1.4.1.js" />
            </Scripts>
        </CompositeScript>
    </asp:ScriptManager>
</asp:Content>

Кажется, это работает нормально, потому что в сгенерированном HTML-теге исходного кода существует скрипт, содержащий jQuery.

<script src="/WebSite2/ScriptResource.axd?d=hX0MDGfWoeBxqyrCFnUlb_i8FIXYFH2jSHZZ8wsoh3wFhHjdmAfUYtPy5B129cjGB7udx4AYPQm_cJi8Xf7uSMn9bbw2gWuhnKTab4SQhBy8ulESCXITgKubR2QozYUq-EPeVYNsCW4jU_8hY-J9fA2" type="text/javascript"></script>

Но jQuery сейчас не работает.
Когда я ссылаюсь на скрипт, обычно работает jQuery.
Что я делаю неправильно? Большое спасибо

Ответы [ 2 ]

2 голосов
/ 26 ноября 2011

Моя главная страница выглядит следующим образом:

Затем я добавляю свои скрипты в область EndPage.

Здесь я также включил стандартную настройку jQuery для ajax.

<%@ Master AutoEventWireup="false" CodeBehind="Standard.master.cs" Inherits="NameNamespace.Standard" %>
<!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>
  <title><asp:ContentPlaceHolder ID="headTitle" runat="server" /></title>
  <link rel="Stylesheet" type="text/css" href="main.css" media="screen" />
  <link rel="Stylesheet" type="text/css" href="print.css" media="print" />
  <script src="Javascript/jquery-1.4.2.min.js" type="text/javascript"></script>
  <script src="Javascript/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
  <asp:ContentPlaceHolder id="head" runat="server" />
</head>
<body>
  <form id="form1" runat="server" >
    <span id="error" style="color:red" />
    <asp:ContentPlaceHolder ID="MainContent" runat="server" />

    <script type="text/javascript">
      $.ajaxSetup({
         type: "POST",
         contentType: "application/json; charset=utf-8",
         data: "{}",
         dataFilter: function(data) {
            var msg;
            if (typeof (JSON) !== 'undefined' && typeof (JSON.parse) === 'function')
               msg = JSON.parse(data);
            else
               msg = eval('(' + data + ')');
            if (msg.hasOwnProperty('d'))
               return msg.d;
            else
               return msg;
         },
         error: function(msg) {
            $('#error').html(msg.responseText)
         }
      });
   </script>

   <asp:ContentPlaceHolder id="EndPage" runat="server" />
  </form>
</body>
</html>

Оригинальный ответ.

Похоже, у вас неправильный порядок.jQuery должен быть первым - в вашем примере у вас есть код, который использует jQuery в заголовке и сам jQuery в теле.

1 голос
/ 26 ноября 2011

Я думаю, это потому, что jQuery используется, прежде чем он будет включен.

В примере вы используете jQuery в заголовке $ (но ядро ​​jQuery include находится в теле.

...