【发布时间】:2014-01-21 05:51:15
【问题描述】:
我正在向我的控制器发出一个简单的发布请求,该请求返回一个我试图解析的 json 对象,但它不起作用。
public ActionResult GetViewEditData(int machineID)
{
ViewBag.MachineData = Json(PMIComputerModel.GetViewEditDetails(machineID));
return View("GetViewEditData");
}
Ajax call
function GetDetails(crntAnc, mode) {
var id = $(crntAnc).parents('tr:first').find('td:first').attr('id');
alert(id);
$.ajax({
url: '/Home/GetViewEditData/',
contentType: "application/json; charset=utf-8",
type: 'POST',
data: "{'machineID': '"+ id +"'}",
success: function () {
},
error: function (e, jqxhr, settings, exception) {
if (jqxhr != null)
alert(jqxhr.responseText);
}
});
var data = '@ViewBag.MachineData';
alert(data);
alert(jQuery.parseJSON(data));
}
在错误块中,它是未定义的。我想要做的就是在我的 javascript 中解析我的 josn 数据。
被序列化的类:
public class PMICheckListWrapper
{
public PMIMachine Machine { get; set; }
public List<PMICheckListResponse> CheckResponseList { get; set; }
}
PS:编辑:由于我没有访问成功函数,也没有返回任何东西,所以我在 ajax 帖子之外采用了解析逻辑,但它仍然会到来
var data = '@ViewBag.MachineData';
alert(data); // blank
alert(jQuery.parseJSON(data)); //null
【问题讨论】:
-
不用再解析了,因为
dataType: 'json',已经存在了 -
我正在通过 viewbag 访问数据,但它没有进入该代码块\
-
好的 pranav,我如何访问它我将 json 对象传递给 viewBag 并返回视图然后尝试访问它。
-
@ankur 你能发布你的数据值吗
-
永远不要使用
alert进行调试,而是使用console.log。您无法在警报中看到对象,而您可以在控制台中看到。
标签: jquery json asp.net-mvc-3