在我的控制器内部有JsonResult动作,它返回一个House对象列表。 我希望onclick使用ajax来检索这些数据并在我的视图中显示json数据。 在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>
成功时内部firebug JSON选项卡:function(result)为空 我有以下数据:
Id 149
PropertyType "Apartment"
StreetNumber "202B"
CityName "Sidney"
Title "My test data"
答案 0 :(得分:2)
首先,您可以在ajax调用'json'中指定dataType属性,然后不必再次解码json响应 -
dataType: 'json'
然后,您不需要使用parseJSON。只需使用result.Title等。
success: function (result) {
alert(result.Title);
var showContent = $('#showContent');
showContent.html(result.Id+','+result.Title);
},
答案 1 :(得分:2)
编辑:正如Mukesh所说,你可以让ajax函数返回json而不使用任何额外的解码。
ajax调用结果已经是一个对象。你可以用里面成功函数做任何你想做的事。
例如,您可以在函数内动态创建信息表,或者通过调用该success函数内的函数将数据发送到另一个函数。离开成功函数后,数据将不再可用。
像任何对象一样访问数据对象(data.someProperty)。
答案 2 :(得分:2)
success: function (json) {
var data = null;
$.each(json.items,function(item,i){
data = '<div>'+item.Id+ ' ' + item.CityName +'</div>';
$("#showContent").append(data);
});
}