2017-04-06 20 views
0

jQuery POSTからaspxページにデータ文字列を取得しようとしています。しかし、運がない。aspxでjQuery POSTからデータを取得

これは私のjQueryの

​​

そして私は、私は「名前」の文字列がブラウザでデバッグを介して送信されて見ることができます。この

string strName = Request.QueryString["name"]; 

を持つASPXの始まりです。しかし、私はそれを取得することができません。 私は古典的なASPから来て、ASP.net C#を学ぼうとしています。私はこれを行う方法を説明する検索結果を見つけることができませんでした。 C#ので

感謝ヘルプ=)

+0

Asp.netのこのチュートリアル素敵な記事を参照してください。 jquery Ajax http://codepedia.info/jquery-ajax-json-example-asp-net-sql-database/ –

答えて

2
function ShowCurrentTime() { 
$.ajax({ 
    type: "POST", 
    url: "CS.aspx/GetCurrentTime", 
    data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }', 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: OnSuccess, 
    failure: function(response) { 
     alert(response.d); 
    } 
}); 
} 

function OnSuccess(response) { 
alert(response.d); 
} 

-----

[System.Web.Services.WebMethod] 
public static string GetCurrentTime(string name){ 
return "Hello " + name + Environment.NewLine + "The Current Time is: " 
    + DateTime.Now.ToString(); 
} 
0

あなたはWebServiceを使用する必要があります。

[WebService, ScriptService] 
public class WebService1 : WebService 
{ 
    [WebMethod] 
    public string names(string name) 
    { 
     return "Hello " + name; 
    } 
} 

次に、Javascriptを使用してクライアント側から呼び出します。

function namePerson() { 
    $.ajax({ 
     type: "POST", 
     url: "WebService1.asmx/names", 
     data: JSON.stringify({ name: "Anders" }), 
     contentType: "application/json; charset=utf-8", 
     beforeSend: function() { 
      $("#ViewContainer").html("<img src='loading.gif' />"); 
     }, 
     success: function (msg) { 
      $("#ViewContainer").html(msg.d); 
      alert(msg.d); 
     } 
    }); 
} 

contentType: "application/json; charset=utf-8"が存在することを確認してください、他のWebサービスは、応答するためにXMLを使用します。

また、successの代わりにdoneを使用する必要があります。

0

JQuery.AJAXは間違って呼び出しています。この行は間違っています。

url: "names.aspx", 

あなたのページ内には、あなたが呼出しようとしているページnames.aspxがあります。あなたはnames.aspxのような、そのページ内のページ(ファイルの背後にあるコード)をしまし考えてみましょう、あなたは提供されたデータに基づいて、名前を取得する方法をしましたので、メソッドの定義と宣言は

[WebMethod] 
public void GetNames(string name) 
{ 
     ... 
} 

そして、あなたのようなものです

url: "names.aspx/GetNames", 

が、それはあなたがWebサービスを作るためにASMXファイルを使用する場合は、
を参照してくださいJQuery.AJAX

+0

これは、私は別のメソッドで文字列を使用したいだけです。私はグーグルで、空白は何も返せません。私はそれを 'public static string'にしようとしました。次に、私は 'return strName;'を設定することができますしかし、私は別の方法で文字列を呼び出すことはできません。はい、私はこれの周りに私の頭を取得しようとしている初心者です:) – sumpen

+0

はい、何も返しません、それはあなたがajax経由でそのメソッドの呼び出しで何をしたいかによって異なります。呼び出す必要のあるメソッドを呼び出すことができます。メソッドは文字列を返すだけでなく、Jsonやその他のデータ型も返すことができます。 –

+0

ajax呼び出しは、ユーザーがファイルをアップロードするためのページのみを返します。手動でアップロードしたファイルの名前を変更してこの文字列を使用するため、文字列 'name'を渡す必要があります。私はそれを渡して、ファイルをアップロードするための方法で使用できるようにしたいだけです。私は '[WebMethod] public ..'をアップロードボタンによってトリガされたメソッドに移動しようとしました。しかしそれによってCS1513: '}'の予期した欠陥が生じました。ここにコードを投稿します:https://pastebin.com/XLkdcceW – sumpen

0

あなたはメソッドビューの背後にあるコードを呼び出すことができる方法を理解するのに役立ちます願っていますようにjQueryのAJAX呼び出しのURLは次のようになります詳細記事同じページ分離コードのELSE Simple Asp.net jQuery ajax Example, C# WebMethod with sql database

分離コードの下書かれたとして、次のように実行します。あなたの名前で 。aspxページを作り、この機能を追加することSTATIC

[WebMethod] 
    public static string names(List<string> obj) 
    { 
      string result = string.Empty; 
      // code Logic 
      string n1=obj[0]; 
      string n2=obj[1]; 
      string n3=obj[2]; 


     return result; 
    } 

jqueryのAJAXを使用してこの関数を呼び出す

JSコード:

function namePerson() { 

     var aData = []; 
     aData[0] = "John"; 
     aData[1] = "Andrea"; 
     aData[1] = "Leslie"; 
     var jsonData = JSON.stringify({ obj: aData }); 

     $.ajax({ 
      type: "POST", 
      url:"names.aspx/names", 
      data: jsonData, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: OnSuccess_, 
      error: OnError_ 
     }); 

} 

function OnSuccess_(response){ 
    var result=response.d; 
    alert(result); 
} 

function OnError_(error){ 
    alert(error); 
} 
関連する問題