2011-10-24 16 views
0

私はサーバーにリクエストを投稿しようとしていますが、デバッガを使用するとヒットしませんか?ajaxリクエストMootoolsからasp.net webforms

サーバー:

public partial class _Default : System.Web.UI.Page 
    { 


     public string HitThis() 
     { 
      return "braza"; 

     } 
    } 


<script type="text/javascript"> 

     var myRequest = new Request({ 
      method: 'post', 
      url: '/Default.aspx/HitThis', 
      onSuccess: function() { 
       alert('good'); 
      }, 
      onFailure: function() { 
       alert('nope'); 
      } 


     }); 

     myRequest.send(); 


</script> 

答えて

0

あなたHitThisメソッドを呼び出すことができるようにしたい場合は、あなたが、その方法を作る静的、Web Method属性とそれを飾るとあなたのScriptManager

上のページメソッドを有効にする必要があります

例:あなたが最初にどのようにASP.NET AJAXスクリプトサービスを理解する必要が

<asp:ScriptManager ID="ScriptManager" runat="server" 
     EnablePageMethods="true" /> 


    [WebMethod] 
    public static string HitThis() 
    { 
     return "Hello World"; 
    } 
+0

scriptmanager?私はmootoolsを使用していますか? – user603007

+0

はい、asp.netを使用していますか?あなたのページに投稿したマークアップを追加してください。それはあなたを傷つけることはなく、サーバー側で 'HitThis'メソッドを呼び出すことができます。 – Icarus

0

またはPageMethod WOR ks!ページメソッドはWebMethod属性で装飾され、静的である必要があります。

[WebMethod] 
public static string HitThis() 
{ 
} 

はjqueryのを使用して、ページメソッドを呼び出す示しthis articleを参照してください。あなたはmootoolsでそれを採用することができます。ただし、ページメソッドはコンテンツタイプがJSONデータである必要があり、レスポンスもJSONになることに注意してください。

通常のフォームの転記を使用する場合は、おそらくASP.NETページでRequest.PathInfoを使用して独自の配線ロジックを記述することができます。たとえば、あなたの方法で

protected void Page_Load(object sender, EventArgs e) 
{ 

    if (this.Request.PathInfo == "HitThis") 
    { 
     HitThis(); 
    } 
} 

は、あなたが(のHttpResponse)Responseで作業する必要があると応答を変更した後、あなたは、通常のページ処理が起こらないように(HttpResponse.End)、それを終了する必要があります。メソッドにパラメータが必要な場合は、フォームデータおよび/またはクエリ文字列を渡す必要があります。

+0

私は試しています:var jSonRequest = new Request.JSON({url: 'default.aspx/HelloWorld'})send();しかし、これは動作しません:( – user603007

関連する問題