0

Pageメソッドを呼び出していますが、このページのすべてのHTMLが返され、1または0の値は返されません。これがなぜであるかはわかりません。誰かが私を正しい方向に向けることができますか?

JavaScript:

$.ajax({
    async: false,
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: '{}',
    url: "main.aspx/IsInfoComplete",
    success: function(data, textStatus, jqXHR) {
        console.log(textStatus);
        console.log(data.d);
            // act on return value:
            if(data==0) {
              // todo - 
            } else if (data==1) {
              // todo - 
            }
        }
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log(textStatus);
    }
});

サーバ:

[System.Web.Services.WebMethod()]

public int IsInfoComplete()
{
    int returnValue = 0;

using (SqlConnection conn = new SqlConnection(connString))
{
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "GetIsUserInfoComplete";
    cmd.Parameters.AddWithValue("@UserName", userName);
    conn.Open();
    try
    {
        returnValue = (int)cmd.ExecuteScalar();
    }
    catch (Exception) { /* todo - */ }
}
return returnValue;
}
4

2 に答える 2

0

あなたが試みるかもしれない一つのことはsuccess、このようにあなたの関数を書くことです、

success: function (result) {
                if (result!="False") {
                    //it worked
                }
                else {
                   //it failed                 
                }
            },

そして、サーバー側のメソッドを変更してを返しますbool。これにより、おそらく望ましい結果が得られます。私は自分が書いたものでこれをしなければならなかった、そしてそれはうまくいった。「False」をチェックする必要があるのは少しばかげていますが、うまくいきました。

注:「False」という単語を探す場合は、大文字と小文字が区別されます

于 2012-09-20T15:48:54.627 に答える
0

これが混乱しているように見えます。ここのデータはオブジェクトであり、データを0または1と比較しようとしています。

success: function(data, textStatus, jqXHR) {
              console.log(data); // Check the format of data in object
            if(data != null){
               console.log(data.d); // Generally your actual dat is in here
              // act on return value:
              if(data.d ==0) {
               // todo - 
              } else if (data.d ==1) {
                // todo - 
            }
        }
    },

その場合、最初にWebサービスがjsonオブジェクトを返します。これでWebサービスを装飾する必要があります。

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[System.Web.Services.WebMethod()]

public int IsInfoComplete()
{

そしてdataType :'json'、あなたのajaxリクエストに設定します

于 2012-09-20T16:01:53.390 に答える