1

AJAX を使用してこの Web サービスを呼び出そうとしています...

ウェブサービスは以下の通り

 public class WebService1 : System.Web.Services.WebService
{

    [WebMethod]
    public String countryCode(String input)
    {



            StringBuilder strings = new StringBuilder("", 10000);
            String text = System.IO.File.ReadAllText(Server.MapPath("countryCodes.txt"));
            String[] countries = Regex.Split(text, "#");

            var valids = new List<String>();
            foreach (String c in countries)
            {
                if (c.ToUpper().StartsWith(input.ToUpper()) || c.ToLower().StartsWith(input.ToLower()))
                {
                    if (input == "")
                    {
                        break;
                    }

                    valids.Add(c);
                }
            }
            return (valids.Any()) ? String.Join(" ", valids) : "No results found for your input!";

        }


    } 

空の Web フォームをセットアップし、スクリプト マネージャーでサービス参照を呼び出しました。

<body>
<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/WebService1.asmx" />
        </Services>
    </asp:ScriptManager>

そして、私は以下のように私のjavascriptを持っています

<script type= "text/javascript">
    var a = wRequest.set_userContext("user's context");
    var onClick = function () {
        CountryCodes.WebService1.countryCode($get("TextBox1"), onSucess, onFailed);
    }
    var onSuccess = function (result) {
       $get("Label3").innerHTML = result;
   }
   var onFailed = function (result) {
       $get("Label3").innerHTML = "No results found for your input!";
   }
</script>

今私の理解では、ボタンが押されると、値の入力が取られ、それがメソッドTextBox1'sの引数として使用されるため、WebService.countryCode成功した場合はメソッドの結果に設定さlabel 3れ、成功しなかった場合は設定されますlabel 3指定された文字列に...

しかし、これは起こりません....実際、ボタンをクリックしても何も起こりません。わかりやすくするために、ボタンの宣言を次に示します...

<input type="button" value="Find Country Codes " onclick ="onClick()" />

このボタンは、自動化された textbox1 とラベル コードが生成されるのと同じ場所にあります。

私の質問は、何が間違っていて、どうすれば修正できるのでしょうか?

説明が必要な場合は、以下に投稿してください。

よろしく

編集:はい、Webサービスでこの行をコメントアウトしました

"[System.Web.Script.Services.ScriptService]"
4

1 に答える 1