如何显示json linq list返回的视图? 我尝试过如下但不能获得列表值。
$("#Admission_No").live("change", function () {
var adminssionNo = $(this).val();
$.getJSON("/../Student_Fee_Allocation/GetStuDetails", { adminssionNo: adminssionNo }, function (list) {
if (list.length) {
alert(list.Registration_Id);
} alert(result.Re_Admission_Id);
});
// $.ajax({
// type: "GET",
// url: "/../Student_Fee_Allocation/GetStuDetails/",
// data: { adminssionNo: adminssionNo },
// contentType: "application/json;charset=utf-8",
// dataType: "json",
// success: function (result) {
// debugger;
// alert(result)
// },
// error: function (response) {
// debugger;
// alert('eror');
// }
// });
});
在c#中获取变量中的数据并返回为json。但从观点来看,没有任何回应,意味着没有得到任何价值,甚至警告不起作用。
public JsonResult GetStuDetails(string adminssionNo)//long? compId, long? compLocId,
{
var list =
(from a in db.Student_Re_Admission
join b in db.Student_Registration on a.Registration_Id equals b.Registration_Id
where a.Admission_No == adminssionNo && b.Delete_Flag == false
orderby a.Re_Admission_Id descending
select new CUSTOM_STUDENT_FEEALLOCATION_DETAIL
{
Registration_Id=a.Registration_Id
}).First();
return Json(list, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
处理单个结果时通常会让一些div作为占位符,然后将该div的html属性设置为来自后端的结果。
请注意,如果没有数据匹配查询参数,则在linq查询中调用.First()会抛出并出错,最好使用FirstOrDefault()
答案 1 :(得分:0)
我注意到您的代码存在一些问题,我将在下面详细说明:
确保返回适当数量的值
在您的查询中,您当前正在通过First()
调用结束调用,这只会返回查询中可用的第一项。如果您尝试返回一组项目,则应考虑使用ToList()
,而应返回查询中的所有值:
var list =
(from a in db.Student_Re_Admission
join b in db.Student_Registration on a.Registration_Id equals b.Registration_Id
where a.Admission_No == adminssionNo && b.Delete_Flag == false
orderby a.Re_Admission_Id descending
select new CUSTOM_STUDENT_FEEALLOCATION_DETAIL
{
Registration_Id=a.Registration_Id
}).ToList();
使用live()
jQuery live()
函数was deprecated in jQuery 1.7虽然这可能不是问题,如果您使用的jQuery版本小于1.9,您应该考虑使用它的替换{{ {3}}而不是。
检查路径
您当前正在使用相对路径,这可能会正常工作,但您可能需要考虑可能定位到绝对路径。如果您的Javascript代码已在View中(而不在外部文件中),则可以使用on()
方法解决此问题:
$.getJSON('@Url("GetStuDetails","Student_Fee_Allocation")', ...);
或者如果它在外部文件中,您可以将其存储在元素的data-*
属性中并引用它:
<div id='Admission_No' data-url='@Url("GetStuDetails","Student_Fee_Allocation")'>
<!-- Your Content Here -->
</div>
以及:
$.getJSON($(this).data('url'), ...);
考虑使用debugger
检查输出
如果您仍然遇到问题,可能需要考虑使用Javascript debugger
语句深入了解从AJAX调用返回的内容:
$.getJSON("/../Student_Fee_Allocation/GetStuDetails", { adminssionNo: adminssionNo }, function (list) {
// Place a debugger here and run this with your Developer Tools (F12)
// open to see more information on what list looks like
debugger;
if (list.length) {
alert(list.Registration_Id);
}
});