2010-11-30 188 views
2

現在、私はASP.NET Webformsサイトで作業していますが、私は小さな問題に取り組んできました。 2時間ぐらい前から探していたので、締め切りがありましたので、ここに誰かが助けてくれることを願っています。私は.csで

私はこの場合には、以下のWebメソッド

[WebMethod] 
    public static string IsJobEditable(int jobid) 
    { 
     try 
     { 
      string isEditable = "false"; 

      JobsBLL jbl = new JobsBLL(); 

      int jobStatusId = jbl.GetJobStatusId(jobid); 


      if(jobStatusId == Convert.ToInt32(ConstantsUtil.JobStatus.Waiting) || jobStatusId == Convert.ToInt32(ConstantsUtil.JobStatus.Edit)) 
      { 
       isEditable = "true"; 
      } 

      return isEditable; 


     } 
     catch (Exception ex) 
     { 

      throw ex; 
     } 
    } 

にこの機能を持っているファイルは、常に文字列としてTRUEを返します。あなたは、私が戻ってコールバックメソッドで取得した値が、私には奇妙なフォーマットであるコメントで見ることができるようにASPXページ

私は

$(function() { 

      $.ajax({ 

       type: "POST", 
       url: "Coordination.aspx/IsJobEditable", 
       data: "{jobid:" + jobid + "}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "text", 
       success: function (result) { 

        alert(result); 


        // This is written out in the alert {"d":"true"} 
        // I want this in a variable as a string 
        // so I can do a check on it before I do some other actions 
        // The format is not a String so i cannot split on it to 
        // retrieve the "true" part. 

       }, 
       error: function (err, result) { alert(err); } 

      }); 
     }); 

を次のようしています。タイプは不明です.Javascriptの小さな部分を取り巻く私の全メソッドを処理できるようにするには、この値が必要です。

誰も私が結果変数/データにアクセスすることができる方向に私を指し示すことができます。それはvarまたはそれをvarに(文字列として)入れることができるものです。

答えて

1

これは、それを解決:

$(function() { 

     $.ajax({ 

      type: "POST", 
      url: "Coordination.aspx/IsJobEditable", 
      data: "{jobid:" + jobid + "}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (result) { 

       alert(result.d); 

       //I finally got the data string i wanted 
       var resultAsString = result.d; 

      }, 
      error: function (err, result) { alert(err); } 

     }); 
    }); 

をSO 2つの物事はこれを解決するためになされました。 dataTypeを "json"に変更しなければならず、result.dを使用してデータを取得しました。

私が捨てたのは、結果オブジェクトにインテリジェンスがないことでした。しかし、.d(データ)プロパティはそれを解決しました。

この回答に感謝します。

2

try alert(result.d);

2

あなたは簡単にこのような「真」の部分を取得することができます。

alert(result.d); 

オブジェクトが「D」のJSONオブジェクトにラップされた理由はセキュリティです。たとえば、hereのように読むことができます。

1

によるとtwoarticles私はあなたがテキストとしてではなく、JSONとして "データ型"を指定したいと思うと思います(jsonのコンテンツタイプが返されることを期待しているので)。それはあなたの問題かもしれませんが、テストする私の前にサンプルプロジェクトはありません。あなたの結果はおそらく同じ記事に概説されているようにresult.dです。

+0

ありがとうございます。トーマス – Memphis

関連する問題