0

ここでは、AJAX (jQuery) の例を使用した Deebu Jacob の ASP.NET Web メソッド呼び出しのわずかに変更されたバージョンを使用しています。int の代わりに文字列を取るように CodeBehind を変更しましたが、アルファ文字列を送信しようとすると、ボタンをクリックしても JS アラートが表示されません。一方、数字の文字列を送信すると、空白や小数点があっても機能します。ページ上のハードコードされた例の代わりに変数を送信できるようにする 2 つ目の関数を追加しました。これは問題なく動作します。

私はまだ理解していない、contentTypeまたはAJAX 呼び出しの概念が欠けていると思います。dataTypedataType を totextおよびcontentTypetoに変更しようとしましapplication/x-www-form-urlencoded; charset=UTF-8たが、どちらも機能しませんでした。

HTML/ASP (この例は機能しますが、変数の 1 つをアルファ文字を含むように変更すると機能しません):

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="JQueryAJAXwithIntExample.WebForm1" %>

<!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">
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
    function asyncServerCall(userid) {
        jQuery.ajax({
            url: 'WebForm1.aspx/GetData',
            type: "POST",
            data: "{'userid':" + userid + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                alert(data.d);
            }
        });
    }
</script>
<script type="text/javascript">
    function testMe() {
        var suffix = ".159";
        var text = "314" + suffix;
        asyncServerCall(text);
    }
</script>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
    <input type="button" value="click me" onclick="testMe();" />
</div>
</form>
</body>
</html>

CodeBehind (唯一の変更点は、GetData メソッドで入力データ型が int から string に変更されたことです):

using System;
using System.Web.Services;

namespace JQueryAJAXwithIntExample
{
public partial class WebForm1 : System.Web.UI.Page
{
    [WebMethod()]
    public static string GetData(string userid)
    {
        /*You can do database operations here if required*/
        return "My user ID is: " + userid;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
    }
}
}

私の最終的な目標は、文字列または一連の文字列をサーバーに戻して、現在取り組んでいるオンライン RMA プロジェクトのメールおよび SQL オブジェクトに処理することです。

4

1 に答える 1