1

jQueryを使用してASP.NETAJAXページメソッドを直接呼び出そうとしています。私はencosia.comを参照として使用しています。私のインラインJavaScriptは

       <script type="text/javascript">
           $(document).ready(function() {
               // Add the page method call as an onclick handler for the div.
               $("#Result").click(function() {                   
                   $.ajax({
                       type: "POST",
                       url: "Default.aspx/GetDate",
                       data: "{}",
                       contentType: "application/json; charset=utf-8",
                       dataType: "json",
                       success: function(msg) {
                           // Replace the div's content with the page method's return.
                           $("#Result").text(msg.d);
                       }
                   });
               });
           });

            </script>
       <div id="Result">Click here for the time.</div> 

私のwebmethodは

<WebMethod()> _
Public Shared Function GetDate() As String
    Return DateTime.Now.ToString()
End Function

FFを使用して、送信されたPOSTを確認しますが、現在IE 7しかないため、これを行うのは少し難しいです。その他の関連情報、ASP.net2.0。誰かが私が間違っていることを知っていますか?


アップデート

web.config-既存のものはまだ機能していません

<httpModules>
  <remove name="FormsAuthentication" />
  <remove name="PassportAuthentication" />
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>
4

3 に答える 3

5

ASP.NET 2.0を使用しているため、JoeEnosが述べたようにASP.NETAJAX拡張機能をインストールする必要があります。ここで必要な構成作業についてもう少し情報があります:http://encosia.com/asmx-scriptservice-mistakes-installation-and-configuration/

さらに、.d応答のラッパーは、 ASP.NET3.5まで提供されなかった追加です。したがって、他のすべてが正しく機能している場合でも、ASP.NET2.0msg.dになります。undefinedを省略して.d、次のようにします。

success: function(msg) {
  // Replace the div's content with the page method's return.
  $("#Result").text(msg);
}
于 2012-06-07T01:44:41.817 に答える
1

.NET 2.0では、ASP.NETAJAX拡張機能をインストールする必要があります。.NET 3.5および4.0では、encosiaソリューションは変更なしで機能します。

何をインストールする必要があるのか​​正確には覚えていませんが、これかもしれませ

于 2012-06-06T16:19:34.490 に答える
0

ページメソッドを許可するためにweb.configをチェックしましたか?

<system.web>
  <httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  </httpModules>
</system.web>

こちらのこの投稿にも同様の問題があります

于 2012-06-06T15:42:37.927 に答える