我是MVC和JQuery的新手,所以我感谢所有帮助。
我正在尝试使用JQuery DataTables插件查看在MVC视图上从SQL数据库检索的数据。 这是我的控制器动作:
public JsonResult Index()
{
var subjects = _db.Subjects.Select(x => new SubjectViewModel()
{
SubjectName = x.SubjectName
}).ToList();
return Json(subjects, JsonRequestBehavior.AllowGet);
}
以下是我的观点:
@model IEnumerable.....
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div>
<table id="mytable" class="display">
<thead> <tr>
<th> Subject Name </th>
</tr> </thead>
<tbody> </tbody>
</table>
</div>
<script>
$(document).ready(function () {
$.noConflict();
$.ajax({
url: '@Url.Action("Index", "SubjectViewModel")',
type: 'Get',
dataType: 'JSON',
success: function (response) {
$('#mytable').DataTable({
'aaData': response,
'aoColumns': [
{ 'mData': 'SubjectName ' }
]
});
}
});
});
</script>
我已将所有javascript引用放在布局页面中,但即使我将它们放在此视图上也没有什么区别。 我得到的结果是原始的json数据,如下所示:
{"SubjectName":"Mathematics"},{"SubjectName":"Accounting"},{"SubjectName":"Science"}
请帮助我理解我缺少的东西,以便dataTable显示Json数据。 感谢。
答案 0 :(得分:0)
你已经将数据作为模型传递给razor视图,因为@Stephen Muecke说使用循环如下:
@model IEnumerable.....
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div>
<table id="mytable" class="display">
<thead> <tr>
<th> Subject Name </th>
</tr> </thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>item</td>
</tr>
}
</tbody>
</table>
</div>