1

コントローラー内には、House オブジェクトのリストを返す JsonResult アクションがあります。これらのデータを取得し、ビュー内に json データを表示するには、ajax を使用して onclick が必要です。firebug 内では、適切な Response と Json の結果を確認できますが、ビュー内に表示する方法がわかりません。

function GetTabData(xdata) {
    $.ajax({
        url: ('/Home/GetTabData'),
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify({ id: xdata }),

        success: function (result) {
           // tried with these but it doesnt work
           // result = jQuery.parseJSON(result);
           // alert(result.Title);
        },
        error: function () { alert("error"); }
    });
}

public JsonResult GetTabData()
{
   ...
   var temp = getMyData...
   return Json(temp, JsonRequestBehavior.AllowGet);   
}


  // View page
     <div id="showContent">
       // Json data should appear here
     </div>

success:function(result) が空の場合の firebug JSON タブ内には、次のデータがあります。

Id  149

PropertyType    "Apartment"

StreetNumber    "202B"

CityName        "Sidney"

Title           "My test data"
4

3 に答える 3

3
success: function (json) {
  var data = null;

  $.each(json.items,function(item,i){
    data = '<div>'+item.Id+ ' ' + item.CityName +'</div>';    
    $("#showContent").append(data);
 });

}
于 2012-07-20T08:43:53.173 に答える
2

まず、「json」への ajax 呼び出しで dataType 属性を指定すると、json 応答を再度デコードする必要がなくなります。

dataType: 'json'

そうすれば、parseJSON を使用する必要はありません。単純にresult.Titleなどを使用してください。

 success: function (result) {
           alert(result.Title);
           var showContent = $('#showContent');
           showContent.html(result.Id+','+result.Title);
        },
于 2012-07-20T08:36:07.143 に答える
2

編集: Mukesh が言ったように、追加のデコードを使用せずに ajax 関数に json を返させることができます。

ajax 呼び出しの結果は既にオブジェクトです。成功関数で、それを使って好きなことをすることができます。

たとえば、関数内で動的に情報のテーブルを作成したり、成功関数内で関数を呼び出してデータを別の関数に送信したりできます。成功関数を終了すると、データは使用できなくなります。

他のオブジェクト (data.someProperty) のようにデータ オブジェクトにアクセスします。

于 2012-07-20T08:36:36.967 に答える