Asp.Net 2.0用のJqueryのAjaxプロパティ
-
08-07-2019 - |
質問
ブログには次のようなコードが常に表示されます:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebService.asmx/HelloWorld",
data: "{}",
dataType: "json",
success: function(msg) {
alert(msg.d);
}
});
しかし、これはasp.net 3.5でのみ実行されると思います。 2.0では実行できませんでした。アプリケーションでこれらのコードを使用するにはどうすればよいですか?
解決
この属性をWebサーバークラスに追加する必要があります
[System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
およびこの属性を関数に追加
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
応答形式に従って応答するため、技術的にはresponseformatを指定する必要はありません。 リクエストで指定した形式に変換します。そして、リクエストでフォーマットを指定する必要があります 。
よろしく
K
他のヒント
jQueryを使用してサーバーに接続する場合、HTMLに ScriptManager
は必要ありません。
あなたのコードの他の部分は正しいと思います。 ScriptManager
を削除するだけです。
この記事は既に知っていますが、助けにはなりませんでした。
サンプルアプリでは、次のコードを使用します:
私のJqueryコード:
$(document).ready(function() {
$('#clKaydet').click(function() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebService.asmx/HelloWorld",
data: "{}",
dataType: "json",
success: function(msg) {
alert(msg);
}
});
});
});
私のHTMLコード:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />
<div>
<input type="button" id="clKaydet" runat="server" value="Kayıt" onclick="Kayit()" />
</div>
</div>
</form>
マイWebserviseコード:
<WebMethod()> _
Public Function HelloWorld() As String
Dim sText As String = "Hello"
Return sText
End Function
間違いはありますか?
すべてのDOM操作にjQueryを使用していますが、サーバーにデータを送信するときは、ASP.Net AJAXを使用して自動生成されたプロキシクラスを利用しています
人生を本当にシンプルに!
不足しているのは、WebMethodタグでマークされたメソッドがデータをJSONではなくXMLとしてシリアル化することだと思います。 ASP.NET MVCを使用すると、JSONをネイティブに返すことができますが、WebMethodにJSONが必要な場合は、独自のコンバーターを作成する必要があります。 AJAX呼び出しのデータ型を&quot; xml&quot;に変更することをお勧めします。動作するかどうかを確認します。
また、(まだ)AJAXにjqueryを使用していないため、(まだ)これを試していません。
結論として、これらのコードをasp.net 2.0で直接使用することはできないと言っていますか?