1

在我的控制器内部有一个 JsonResult 动作,它返回给我一个 House 对象的列表。我想使用 ajax onclick 来检索这些数据并在我的视图中显示 json 数据。在萤火虫内部,我可以看到正确的响应和 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 回答