[英]Sorting Data using LINQ.Dynamic
我想使用JSON數據填充表格。 這很完美。 但是,當我要查看數據時會出現問題。 我繼續遇到'UserModel'類型不存在屬性或字段'RegistrationIDasc'。 我的UserModel包含字符串RegistrationID。我不了解附加的“ asc”。 這是控制器
public ActionResult LoadRolesData()
{
try
{
var draw = Request.Form.GetValues("draw").FirstOrDefault();
var start = Request.Form.GetValues("start").FirstOrDefault();
var length = Request.Form.GetValues("length").FirstOrDefault();
var sortColumn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
var searchValue = Request.Form.GetValues("search[value]").FirstOrDefault();
int pageSize = length != null ? Convert.ToInt32(length) : 0;
int skip = start != null ? Convert.ToInt32(start) : 0;
int recordsTotal = 0;
var rolesData = _IAssignRoles.ShowallRoles(sortColumn, sortColumnDir, searchValue);
recordsTotal = rolesData.Count();
return Json(new { draw, recordsFiltered = recordsTotal, recordsTotal });
}
catch (Exception)
{
throw; //exception thrown here
}
}
下面是班級模型
public IQueryable<UserModel> ShowallRoles(string sortColumn, string sortColumnDir, string Search)
{
var result = (from AssignedRoles in db.AssignedRoles
join registration in db.Registration on AssignedRoles.RegistrationID equals registration.RegistrationID
join AssignedRolesAdmin in db.Registration on AssignedRoles.AssignToAdmin equals AssignedRolesAdmin.RegistrationID
select new UserModel
{
Name = registration.Name,
AssignToAdmin = string.IsNullOrEmpty(AssignedRolesAdmin.Name) ? "*Not Assigned*" : AssignedRolesAdmin.Name.ToUpper(),
RegistrationID = registration.RegistrationID
});
if (!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir))) //first exception thrown
{
result = result.Where(sortColumn + "" + sortColumnDir);
}
if (!string.IsNullOrEmpty(Search))
{
result = result.Where(m => m.Name == Search);
}
return result;
}
須藤代碼
public IQueryable<UserModel> ShowallRoles(string sortColumn, string sortColumnDir, string Search)
{
var result = (from AssignedRoles in db.AssignedRoles
join registration in db.Registration on AssignedRoles.RegistrationID equals registration.RegistrationID
join AssignedRolesAdmin in db.Registration on AssignedRoles.AssignToAdmin equals AssignedRolesAdmin.RegistrationID
select new UserModel
{
Name = registration.Name,
AssignToAdmin = string.IsNullOrEmpty(AssignedRolesAdmin.Name) ? "*Not Assigned*" : AssignedRolesAdmin.Name.ToUpper(),
RegistrationID = registration.RegistrationID
});
if (!string.IsNullOrEmpty(Search))
{
result = result.Where(m => m.Name == Search);
}
if (!string.IsNullOrEmpty(sortColumn))
{
if (!string.IsNullOrEmpty(sortColumnDir))
{
if(sortColumnDir == "asc")
result = result.OrderBy(sortColumn);
else
result = result.OrderByDescending(sortColumn);
}
}
return result;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.