0

jquery ajax call asp.net Web サービスがありますが、機能していません。エラーが発生しました:

isValid は不十分です。

ブレークポイントを設定したところ、コードが Web サービスに到達しないことがわかりました。Jクエリ:

<script src="../jquery-1.7.2.min.js" type="text/javascript"></script>
<script>
    function ValidateUserName() {
        var isValid;
        $.ajax({ type: "POST",
            url: "UserNameWebService.asmx/ValidateUserName",
            data: "{'strUsername': '" + $("#<%=TextUserName.ClientID%>").val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: false,
            success: function (data) {
                isValid = data;
            }
        });
         return isValid;
        } 
</script>

ウェブサービスコード:

 [WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class UserNameWebService : System.Web.Services.WebService
{

    [WebMethod]
    public bool ValidateUserName(string strUsername)
    {
        \\ then return something by logic

ありがとうございました。

4

1 に答える 1

3

isValidAjax が完成する前に戻ってきます。最善の方法は、Ajax 呼び出しの完了時に呼び出される関数を作成することです。

    $.ajax({ type: "POST",
        url: "UserNameWebService.asmx/ValidateUserName",
        data: "{'strUsername': '" + $("#<%=TextUserName.ClientID%>").val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        success: function (data) {
            RenderResult(data);
        }
    });

次に、返されたデータをここで処理します。

function RenderResult(data){
    // handle the returned result here
    var isValid = data;
}
于 2012-04-23T13:47:24.753 に答える