我正在尝试将Json数据传递到视图中的html表。无论出于何种原因,我无法让它发挥作用。这是我的代码。我有一个“组代码”侧边栏,表格应根据所选的组代码进行过滤。当我“警告(数据)”时,我只得到我需要的数据,如果我像下面那样序列化,或者我只是得到[objet] [对象]。此外,如果我做$('。xx')。html(数据)它返回数据但是以json格式显然不是在表格结构中
--Controller
[HttpPost]
public JsonResult Index(string grpCode)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
var data = serializer.Serialize(new EmployeeDAL().EmployeeData(grpCode).employeeList);
return Json(data);
}
--View
$('#tbl tr td').click(function () {
var selection = $(this).text().trim();
$.ajax({
type: "Post",
url: "/Home/Index/",
dataType: "Json",
data: { grpCode: selection },
success: function (data) {
alert(data);
$.each(data, function (index, item) {
var row = $("<tr />");
$("<td />").text(item.First_Name).appendTo(row);
$("<td />").text(item.Last_Name).appendTo(row);
$("<td />").text(item.Work_Pager).appendTo(row);
$("<td />").text(item.Effective_Date).appendTo(row);
row.appendTo("table.xx");
});
<table class="xx"> </table>
--Sample JSon [{"Last_Name": "Brown",
"First_Name": "Rodney" "Work_Pager": "43343"}]
我只是在使用那个“垃圾”表进行测试。当我开始工作时,真正的表格将正常结构
答案 0 :(得分:0)
JsonResult会自动将您的对象序列化为JSON。 你应该使用:
public JsonResult Index(string grpCode)
{
var data = new EmployeeDAL().EmployeeData(grpCode).employeeList;
return Json(data);
}
编辑:
如果警报数据为您提供[object] [Oject]
,那么返回的内容可能不是一个简单的项目列表,而是一个复杂的对象。
例如:
{"items":[{"name":"test","completed":false},{"name":"test2","completed":true}]}
那么项目数组(test和test2)将包含在data.items中,您可以使用以下代码获取数组的长度:alert(data.items.length);
为了进行调试,我建议使用Chrome,特别是使用网络和来源标签。