我正在开发一个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>';
}
}
]
}
);
}
我无法弄清楚我到底做错了什么。请有人帮忙。
答案 0 :(得分:2)
对于数据表您需要将TYPE更改为[HttpPost]&amp;在你的ajax改变类型&#34; POST&#34; 作为开发人员,您需要为控制器添加断点。检查它是否被击中。 您也可以使用console.log()/在浏览器开发者工具中查看结果
答案 1 :(得分:1)