Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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
添加ActionLink";详情&引用;编辑"&引用;删除“;到ajax列表MVC5_Ajax_List_Asp.net Mvc 5 - Fatal编程技术网

添加ActionLink";详情&引用;编辑"&引用;删除“;到ajax列表MVC5

添加ActionLink";详情&引用;编辑"&引用;删除“;到ajax列表MVC5,ajax,list,asp.net-mvc-5,Ajax,List,Asp.net Mvc 5,我想让ActionLink“Details”、“Edit”和“Delete”根据Ajax列表中的ID进行操作,我设法用datatable获得了我的列表,而没有脚本中的列,正如您在我的代码中看到的那样,我想在我的表的末尾添加3个链接 这是我的控制器: [HttpGet] public string Loadregistrationslist(int draw, int? start, int? length) { try

我想让ActionLink“Details”、“Edit”和“Delete”根据Ajax列表中的ID进行操作,我设法用datatable获得了我的列表,而没有脚本中的列,正如您在我的代码中看到的那样,我想在我的表的末尾添加3个链接

这是我的控制器:

[HttpGet]
        public string Loadregistrationslist(int draw, int? start, int? length)
        {
            try
            {
                int IdFilter = 0;
                string textFilter = "";

                if (start == null)
                {
                    start = 0;
                }
                else
                {
                    start -= 1;
                }
                if (start < 1)
                    start = 0;


                if (length == null)
                {
                    length = 10;
                }

                var QueryString = HttpContext.Request.QueryString;
                var orderBy = QueryString.Get("order[0][column]");
                var orderByDir = QueryString.Get("order[0][dir]");
                var search = QueryString.Get("search[value]");


                var query = db.Registrations.Select(r => new RegistrationsList()
                {
                    ID = r.ID,
                    FullName = r.LastName + " " + r.FirstName,
                    Email = r.Email,
                    BirthDate = r.BirthDate
                });

                if (search != null) {
                    int n;
                    search = search.Trim();
                    var isNumeric = int.TryParse(search, out n);
                    if (isNumeric)
                    {
                        IdFilter = n;
                        query = query.Where(x => x.ID == IdFilter);
                    }
                    else if (search != "")
                    {
                        textFilter = search;
                        query = query.Where(x => x.FullName.Contains(textFilter) || x.Email.Contains(textFilter));
                    }
                }
                string sortOrder = $"{orderBy}_{orderByDir.ToUpper()}";
                switch (sortOrder)
                {
                    //FullName
                    case "1_DESC":
                        query = query.OrderByDescending(s => s.FullName);
                        break;
                    case "1_ASC":
                        query = query.OrderBy(s => s.FullName);
                        break;
                    //Email
                    case "2_DESC":
                        query = query.OrderByDescending(s => s.Email);
                        break;
                    case "2_ASC":
                        query = query.OrderBy(s => s.Email);
                        break;
                    //ID
                    case "0_DESC":
                        query = query.OrderByDescending(s => s.ID);
                        break;
                    default:  // ID ascending 
                        query = query.OrderBy(s => s.ID);
                        break;
                }

                var data = query.Skip((int)start).Take((int)length).ToList<RegistrationsList>();
                var lstData = new List<List<string>>();
                foreach (var dataRow in data) {
                    var row = new List<string>() { 
                        dataRow.ID.ToString(), dataRow.FullName, dataRow.Email, dataRow.BirthDate.ToString()
                    };
                    lstData.Add(row);
                }

                var recordsTotal = db.Registrations.Select(x => x.ID).Count();
                var recordsFiltered = query.Count();
                var response = new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = recordsTotal,
                    recordsFiltered = recordsFiltered,
                    data = lstData
                };
                return JsonConvert.SerializeObject(response, _jsonSerializerSettings);
            }
            catch (AjaxFunctionalException ex)
            {
                return JsonConvert.SerializeObject(new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = 0,
                    recordsFiltered = 0,
                    data = new List<List<string>>()/*,
                    errcode = ex.code,
                    errmessage = ex.Message,
                    errdata = ex.data*/
                }, _jsonSerializerSettings);
            }
            catch (Exception ex)
            {
                return JsonConvert.SerializeObject(new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = 0,
                    recordsFiltered = 0,
                    data = new List<List<string>>()
                    /*code = 5000,
                    message = ex.Message,
                    data = null*/
                }, _jsonSerializerSettings);
            }
        }
[HttpGet]
        public string Loadregistrationslist(int draw, int? start, int? length)
        {
            try
            {
                int IdFilter = 0;
                string textFilter = "";

                if (start == null)
                {
                    start = 0;
                }
                else
                {
                    start -= 1;
                }
                if (start < 1)
                    start = 0;


                if (length == null)
                {
                    length = 10;
                }

                string orderByDir, search;
                int orderByIdx;
                List<string> cols = ExtractDataSortAndFilter(out orderByIdx, out orderByDir, out search);

                var query = db.Registrations.Select(r => new RegistrationsList()
                {
                    ID = r.ID,
                    FullName = r.LastName + " " + r.FirstName,
                    Email = r.Email,
                    BirthDate = r.BirthDate
                });

                if (search != null)
                {
                    int n;
                    search = search.Trim();
                    var isNumeric = int.TryParse(search, out n);
                    if (isNumeric)
                    {
                        IdFilter = n;
                        query = query.Where(x => x.ID == IdFilter);
                    }
                    else if (search != "")
                    {
                        textFilter = search;
                        query = query.Where(x => x.FullName.Contains(textFilter) || x.Email.Contains(textFilter));
                    }
                }
                string sortOrder = $"{cols[orderByIdx]}_{orderByDir.ToUpper()}";
                switch (sortOrder)
                {
                    //FullName
                    case "FullName_DESC":
                        query = query.OrderByDescending(s => s.FullName);
                        break;
                    case "FullName_ASC":
                        query = query.OrderBy(s => s.FullName);
                        break;
                    //Email
                    case "Email_DESC":
                        query = query.OrderByDescending(s => s.Email);
                        break;
                    case "Email_ASC":
                        query = query.OrderBy(s => s.Email);
                        break;
                    //ID
                    case "ID_DESC":
                        query = query.OrderByDescending(s => s.ID);
                        break;
                    default:  // ID ascending 
                        query = query.OrderBy(s => s.ID);
                        break;
                }
                var data = new List<RegistrationsList>();
                if (length > -1)
                {
                    data = query.Skip((int)start).Take((int)length).ToList<RegistrationsList>();
                }
                else
                {
                    data = query.Skip((int)start).ToList<RegistrationsList>();
                }
                /*var lstData = new List<List<string>>();
                foreach (var dataRow in data) {
                    var row = new List<string>() { 
                        dataRow.ID.ToString(), dataRow.FullName, dataRow.Email, dataRow.BirthDate.ToString()
                    };
                    lstData.Add(row);
                }*/

                var recordsTotal = db.Registrations.Select(x => x.ID).Count();
                var recordsFiltered = query.Count();
                var response = new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = recordsTotal,
                    recordsFiltered = recordsFiltered,
                    data = data
                };
                return JsonConvert.SerializeObject(response, _jsonSerializerSettings);
            }
            catch (AjaxFunctionalException ex)
            {
                return JsonConvert.SerializeObject(new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = 0,
                    recordsFiltered = 0,
                    data = new List<RegistrationsList>()/*,
                    errcode = ex.code,
                    errmessage = ex.Message,
                    errdata = ex.data*/
                }, _jsonSerializerSettings);
            }
            catch (Exception ex)
            {
                return JsonConvert.SerializeObject(new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = 0,
                    recordsFiltered = 0,
                    data = new List<RegistrationsList>()
                    /*code = 5000,
                    message = ex.Message,
                    data = null*/
                }, _jsonSerializerSettings);
            }
        }

        private List<string> ExtractDataSortAndFilter(out int orderByIdx, out string orderByDir, out string search)
        {
            List<string> cols;
            var QueryString = HttpContext.Request.QueryString;

            cols = new List<string>();
            string colName = null, colNamePath = "";
            int colIdx = 0;
            do
            {
                colNamePath = "columns[" + colIdx + "][data]";
                colName = QueryString.Get(colNamePath);
                cols.Add(colName);
                colIdx++;
            } while (colName != null);
            string orderBy = QueryString.Get("order[0][column]");
            orderByDir = QueryString.Get("order[0][dir]");
            search = QueryString.Get("search[value]");
            orderByIdx = orderBy == null ? 0 : int.Parse(orderBy);
            orderByDir = orderByDir == null ? "asc" : orderByDir;
            search = search == null ? "" : search;
            return cols;
        }
这是我的表格html:

<table id="registrationTable" class="table table-striped dt-responsive display datatable dtr-inline" role="grid" aria-describedby="example-1_info">
                                <thead>
                                    <tr>
                                        <th>
                                            ID
                                        </th>
                                        <th>
                                            @Resource.FullName
                                        </th>
                                        <th>
                                            @Resource.Email
                                        </th>
                                        <th class="sorting_desc_disabled sorting_asc_disabled">
                                            @Resource.BirthDate
                                        </th>
                                        @*<th>
                                            Edit
                                        </th>
                                        <th>
                                            Delete
                                        </th>*@
                                    </tr>
                                </thead>
                            </table>

身份证件
@Resource.FullName
@资源。电子邮件
@资料来源:出生日期
@*
编辑
删除
*@

我找到了解决方案,我的控制器有一点变化,所以这是我的新代码:

在我的控制器中:

[HttpGet]
        public string Loadregistrationslist(int draw, int? start, int? length)
        {
            try
            {
                int IdFilter = 0;
                string textFilter = "";

                if (start == null)
                {
                    start = 0;
                }
                else
                {
                    start -= 1;
                }
                if (start < 1)
                    start = 0;


                if (length == null)
                {
                    length = 10;
                }

                var QueryString = HttpContext.Request.QueryString;
                var orderBy = QueryString.Get("order[0][column]");
                var orderByDir = QueryString.Get("order[0][dir]");
                var search = QueryString.Get("search[value]");


                var query = db.Registrations.Select(r => new RegistrationsList()
                {
                    ID = r.ID,
                    FullName = r.LastName + " " + r.FirstName,
                    Email = r.Email,
                    BirthDate = r.BirthDate
                });

                if (search != null) {
                    int n;
                    search = search.Trim();
                    var isNumeric = int.TryParse(search, out n);
                    if (isNumeric)
                    {
                        IdFilter = n;
                        query = query.Where(x => x.ID == IdFilter);
                    }
                    else if (search != "")
                    {
                        textFilter = search;
                        query = query.Where(x => x.FullName.Contains(textFilter) || x.Email.Contains(textFilter));
                    }
                }
                string sortOrder = $"{orderBy}_{orderByDir.ToUpper()}";
                switch (sortOrder)
                {
                    //FullName
                    case "1_DESC":
                        query = query.OrderByDescending(s => s.FullName);
                        break;
                    case "1_ASC":
                        query = query.OrderBy(s => s.FullName);
                        break;
                    //Email
                    case "2_DESC":
                        query = query.OrderByDescending(s => s.Email);
                        break;
                    case "2_ASC":
                        query = query.OrderBy(s => s.Email);
                        break;
                    //ID
                    case "0_DESC":
                        query = query.OrderByDescending(s => s.ID);
                        break;
                    default:  // ID ascending 
                        query = query.OrderBy(s => s.ID);
                        break;
                }

                var data = query.Skip((int)start).Take((int)length).ToList<RegistrationsList>();
                var lstData = new List<List<string>>();
                foreach (var dataRow in data) {
                    var row = new List<string>() { 
                        dataRow.ID.ToString(), dataRow.FullName, dataRow.Email, dataRow.BirthDate.ToString()
                    };
                    lstData.Add(row);
                }

                var recordsTotal = db.Registrations.Select(x => x.ID).Count();
                var recordsFiltered = query.Count();
                var response = new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = recordsTotal,
                    recordsFiltered = recordsFiltered,
                    data = lstData
                };
                return JsonConvert.SerializeObject(response, _jsonSerializerSettings);
            }
            catch (AjaxFunctionalException ex)
            {
                return JsonConvert.SerializeObject(new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = 0,
                    recordsFiltered = 0,
                    data = new List<List<string>>()/*,
                    errcode = ex.code,
                    errmessage = ex.Message,
                    errdata = ex.data*/
                }, _jsonSerializerSettings);
            }
            catch (Exception ex)
            {
                return JsonConvert.SerializeObject(new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = 0,
                    recordsFiltered = 0,
                    data = new List<List<string>>()
                    /*code = 5000,
                    message = ex.Message,
                    data = null*/
                }, _jsonSerializerSettings);
            }
        }
[HttpGet]
        public string Loadregistrationslist(int draw, int? start, int? length)
        {
            try
            {
                int IdFilter = 0;
                string textFilter = "";

                if (start == null)
                {
                    start = 0;
                }
                else
                {
                    start -= 1;
                }
                if (start < 1)
                    start = 0;


                if (length == null)
                {
                    length = 10;
                }

                string orderByDir, search;
                int orderByIdx;
                List<string> cols = ExtractDataSortAndFilter(out orderByIdx, out orderByDir, out search);

                var query = db.Registrations.Select(r => new RegistrationsList()
                {
                    ID = r.ID,
                    FullName = r.LastName + " " + r.FirstName,
                    Email = r.Email,
                    BirthDate = r.BirthDate
                });

                if (search != null)
                {
                    int n;
                    search = search.Trim();
                    var isNumeric = int.TryParse(search, out n);
                    if (isNumeric)
                    {
                        IdFilter = n;
                        query = query.Where(x => x.ID == IdFilter);
                    }
                    else if (search != "")
                    {
                        textFilter = search;
                        query = query.Where(x => x.FullName.Contains(textFilter) || x.Email.Contains(textFilter));
                    }
                }
                string sortOrder = $"{cols[orderByIdx]}_{orderByDir.ToUpper()}";
                switch (sortOrder)
                {
                    //FullName
                    case "FullName_DESC":
                        query = query.OrderByDescending(s => s.FullName);
                        break;
                    case "FullName_ASC":
                        query = query.OrderBy(s => s.FullName);
                        break;
                    //Email
                    case "Email_DESC":
                        query = query.OrderByDescending(s => s.Email);
                        break;
                    case "Email_ASC":
                        query = query.OrderBy(s => s.Email);
                        break;
                    //ID
                    case "ID_DESC":
                        query = query.OrderByDescending(s => s.ID);
                        break;
                    default:  // ID ascending 
                        query = query.OrderBy(s => s.ID);
                        break;
                }
                var data = new List<RegistrationsList>();
                if (length > -1)
                {
                    data = query.Skip((int)start).Take((int)length).ToList<RegistrationsList>();
                }
                else
                {
                    data = query.Skip((int)start).ToList<RegistrationsList>();
                }
                /*var lstData = new List<List<string>>();
                foreach (var dataRow in data) {
                    var row = new List<string>() { 
                        dataRow.ID.ToString(), dataRow.FullName, dataRow.Email, dataRow.BirthDate.ToString()
                    };
                    lstData.Add(row);
                }*/

                var recordsTotal = db.Registrations.Select(x => x.ID).Count();
                var recordsFiltered = query.Count();
                var response = new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = recordsTotal,
                    recordsFiltered = recordsFiltered,
                    data = data
                };
                return JsonConvert.SerializeObject(response, _jsonSerializerSettings);
            }
            catch (AjaxFunctionalException ex)
            {
                return JsonConvert.SerializeObject(new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = 0,
                    recordsFiltered = 0,
                    data = new List<RegistrationsList>()/*,
                    errcode = ex.code,
                    errmessage = ex.Message,
                    errdata = ex.data*/
                }, _jsonSerializerSettings);
            }
            catch (Exception ex)
            {
                return JsonConvert.SerializeObject(new DataTablesResponse()
                {
                    draw = draw,
                    recordsTotal = 0,
                    recordsFiltered = 0,
                    data = new List<RegistrationsList>()
                    /*code = 5000,
                    message = ex.Message,
                    data = null*/
                }, _jsonSerializerSettings);
            }
        }

        private List<string> ExtractDataSortAndFilter(out int orderByIdx, out string orderByDir, out string search)
        {
            List<string> cols;
            var QueryString = HttpContext.Request.QueryString;

            cols = new List<string>();
            string colName = null, colNamePath = "";
            int colIdx = 0;
            do
            {
                colNamePath = "columns[" + colIdx + "][data]";
                colName = QueryString.Get(colNamePath);
                cols.Add(colName);
                colIdx++;
            } while (colName != null);
            string orderBy = QueryString.Get("order[0][column]");
            orderByDir = QueryString.Get("order[0][dir]");
            search = QueryString.Get("search[value]");
            orderByIdx = orderBy == null ? 0 : int.Parse(orderBy);
            orderByDir = orderByDir == null ? "asc" : orderByDir;
            search = search == null ? "" : search;
            return cols;
        }
[HttpGet]
公共字符串加载注册列表(int-draw、int-start、int-length)
{
尝试
{
int-IdFilter=0;
字符串textFilter=“”;
if(start==null)
{
开始=0;
}
其他的
{
开始-=1;
}
如果(开始<1)
开始=0;
如果(长度==null)
{
长度=10;
}
字符串orderByDir,搜索;
int orderByIdx;
List cols=ExtractDataSortAndFilter(out-orderByIdx、out-orderByDir、out-search);
var query=db.Registrations.Select(r=>newregistrationslist())
{
ID=r.ID,
全名=r.LastName+“”+r.FirstName,
Email=r.Email,
生日=r.生日
});
如果(搜索!=null)
{
int n;
search=search.Trim();
var isNumeric=int.TryParse(搜索,out n);
如果(是数字)
{
IdFilter=n;
query=query.Where(x=>x.ID==IdFilter);
}
else if(搜索!=“”)
{
textFilter=搜索;
query=query.Where(x=>x.FullName.Contains(textFilter)| | x.Email.Contains(textFilter));
}
}
字符串排序器=$“{cols[orderByIdx]}{orderByDir.ToUpper()}”;
开关(分拣机)
{
//全名
案例“全名描述”:
query=query.OrderByDescending(s=>s.FullName);
打破
案例“全名”\u ASC:
query=query.OrderBy(s=>s.FullName);
打破
//电子邮件
案例“电子邮件描述”:
query=query.OrderByDescending(s=>s.Email);
打破
案例“Email_ASC”:
query=query.OrderBy(s=>s.Email);
打破
//身份证
案例“ID_DESC”:
query=query.OrderByDescending(s=>s.ID);
打破
默认值://ID升序
query=query.OrderBy(s=>s.ID);
打破
}
var data=新列表();
如果(长度>-1)
{
data=query.Skip((int)start).Take((int)length.ToList();
}
其他的
{
data=query.Skip((int)start.ToList();
}
/*var lstData=新列表();
foreach(数据中的var数据行){
var row=新列表(){
dataRow.ID.ToString(),dataRow.FullName,dataRow.Email,dataRow.BirthDate.ToString()
};
lstData.Add(行);
}*/
var recordsTotal=db.Registrations.Select(x=>x.ID).Count();
var recordsFiltered=query.Count();
var response=新的DataTablesResponse()
{
画,
recordsTotal=recordsTotal,
记录过滤=记录过滤,
数据=数据
};
返回JsonConvert.SerializeObject(响应,_jsonSerializerSettings);
}
捕获(AjaxFunctionalException ex)
{
返回JsonConvert.SerializeObject(新的DataTablesResponse()
{
画,
recordsTotal=0,
recordsFiltered=0,
数据=新列表()/*,
errcode=ex.code,
errmessage=例如消息,
errdata=ex.data*/
},_jsonSerializerSettings);
}
捕获(例外情况除外)
{
返回JsonConvert.Serial