【发布时间】:2017-05-20 07:06:30
【问题描述】:
我正在开发一个 ASP.Net MVC 应用程序。我想使用 ajax 从数据库中获取数据。它不会在网页中加载数据,控制台窗口也没有错误,在 Visual Studio 中也不例外。 以下是我的控制器代码。
[HttpGet]
public JsonResult GetCompanies()
{
try
{
IEnumerable<Company> company = _companyService.GetCompanies().ToList();
IEnumerable<CompanyListViewModel> viewModelListCompanies = Mapper.DynamicMap<IEnumerable<Company>, IEnumerable<CompanyListViewModel>>(company);
return new JsonSuccessResult(viewModelListCompanies);
//return Json(accountTypes, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
Response.StatusCode = (int)ResponseCode.UnprocessableEntity;
return new JsonErrorResult(ex.ToString());
}
}
这是我认为的代码。
<div class="row">
<div class="col-md-9">
<div class="block">
<div class="header">
<h2>Sortable table</h2>
</div>
<div class="content">
<table cellpadding="0" cellspacing="0" width="100%" class="table table-bordered table-striped sortable" id="myDbTable">
<thead>
<tr>
<th data-hide width="20%">ID</th>
<th data-hide width="20%">Name</th>
<th data-hide width="20%">E-mail</th>
<th data-hide width="20%">Phone</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
}
@section Scripts{
<script>
var DataColumnsCount = 4;
//***Start Fatching Data for datatable *** start //
$.ajax({
type: 'POST',
url: @Url.Action("GetCompanies","Company"),
dataType: 'json',
data: "{}",
success: fetchCompanyTableList});
function fetchCompanyTableList() {
$('#myDbTable').DataTable({
ajax: {
url: @Url.Action("GetCompanies", "Company"),
type: "GET",
dataType: "json",
dataSrc: 'DataSet',
},
"columns": [
{"data" : "Id"},
{ "data": "Name" },
{ "data": "Email" },
{ "data": "Owner" }
],
"aoColumnDefs": [
{
"aTargets": [DataColumnsCount],
"mData": null,
"bSortable": false,
"mRender": function (data, type, fullRow) {
return '<th width="20%"><a href="#">Details</a></th>';
}
}
]
}
);
}
我无法弄清楚我到底做错了什么。请有人在这方面提供帮助。
【问题讨论】:
-
响应 Ajax 请求得到了什么?(检查检查->网络->chrome 上的 XHR)。
-
给出:状态码 200 ok
-
并且找不到控制器的 GetCompanies 方法。这意味着它没有获取我的控制器 GET 代码。我现在应该在这里做什么?
-
第一个 ajax 应该有回调函数 - 在你第一个 Ajax 成功中: function(result) { if(result != null ) // 调用函数 fetchCompanyTableList(); }
-
不需要第一次ajax调用。只需在数据表中使用 ajax 调用。
标签: jquery asp.net ajax asp.net-mvc