Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 无法使用ajax从数据库中获取数据_Jquery_Asp.net_Ajax_Asp.net Mvc - Fatal编程技术网

Jquery 无法使用ajax从数据库中获取数据

Jquery 无法使用ajax从数据库中获取数据,jquery,asp.net,ajax,asp.net-mvc,Jquery,Asp.net,Ajax,Asp.net Mvc,我正在开发一个ASP.NETMVC应用程序。我想使用ajax从数据库中获取数据。它不会在网页中加载数据,而且控制台窗口上没有错误,在VisualStudio中也不例外。 下面是我的控制器代码 [HttpGet] public JsonResult GetCompanies() { try { IEnumerable<Company> company = _companyService.GetCompani

我正在开发一个ASP.NETMVC应用程序。我想使用ajax从数据库中获取数据。它不会在网页中加载数据,而且控制台窗口上没有错误,在VisualStudio中也不例外。 下面是我的控制器代码

    [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());
        }
    }
[HttpGet]
public JsonResult GetCompanies()
{
尝试
{
IEnumerable company=_companyService.getcompanys().ToList();
IEnumerable ViewModelListCompanys=Mapper.DynamicMap(公司);
返回新的JsonSuccessResult(ViewModelListCompanys);
//返回Json(accountTypes,JsonRequestBehavior.AllowGet);
}
捕获(例外情况除外)
{
Response.StatusCode=(int)ResponseCode.UnprocessableEntity;
返回新的JsonErrorResult(例如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>';
                }
            }
        ]

    }
      );


}

可排序表
身份证件
名称
电子邮件
电话
}
@节脚本{
var DataColumnsCount=4;
//***开始为datatable***开始填充数据//
$.ajax({
键入:“POST”,
url:@url.Action(“GetCompanys”、“Company”),
数据类型:“json”,
数据:“{}”,
成功:fetchCompanyTableList});
函数fetchCompanyTableList(){
$('#myDbTable').DataTable({
阿贾克斯:{
url:@url.Action(“GetCompanys”、“Company”),
键入:“获取”,
数据类型:“json”,
dataSrc:“数据集”,
},
“栏目”:[
{“数据”:“Id”},
{“数据”:“名称”},
{“数据”:“电子邮件”},
{“数据”:“所有者”}
],
“aoColumnDefs”:[
{
“aTargets”:[DataColumnSunt],
“mData”:空,
“可移植”:错误,
“mRender”:函数(数据、类型、全行){
返回“”;
}
}
]
}
);
}


我无法找出我到底做错了什么。请有人在这方面提供帮助。

您在操作中使用
[HttpGet]
意味着在操作中只允许http
GET
请求。 但是你的
ajax
调用你使用的
POST
请求。这在你的操作中是不可接受的。因此,如果你需要
GET
请求,请将
POST
更改为
GET
,或者将
[HttpGet]
更改为
POST
请求


您不需要多个
ajax
调用。因此需要更改您的ajax调用,因为jquery datatable有自己的用于数据加载的ajax调用。您可以添加您的答案或链接。或者您可以关注YouTube视频。

对于datatable,您需要将类型更改为[HttpPost]&在您的ajax中更改类型“POST” 作为一名开发人员,您需要将断点添加到您的控制器中&检查它是否被击中。
您还可以console.log()/查看浏览器开发人员工具中的结果

您对Ajax请求的响应是什么?(在chrome上签入inspect->Network->XHR).it giving:未找到控制器的状态代码200 Ok和GetCompanies方法。这意味着它没有获取我的控制器GET代码..我现在应该做什么?第一个ajax中应该有回调函数-在您的第一个ajax中成功:函数(result){if(result!=null)//调用函数FetchCompanityTableList();}不需要第一次ajax调用。只需在datatable中使用ajax调用。通过更改类型来获取它是在dataset中获取数据,而不是在表中填充。您能告诉我为什么它没有显示在表中,以便我标记您的答案吗