当我尝试在 Asp.Net MVC 中创建服务器端数据表时遇到问题 代码如下:
[HttpPost]
public ActionResult CustomerList()
{
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();
int pageSize = length != null ? Convert.ToInt32(length) : 0;
int skip = start != null ? Convert.ToInt32(start) : 0;
int totalRecords = 0;
using (ApplicationDbContext db = new ApplicationDbContext())
{
var resultData = (from cust in db.Customers
//orderby sortColumn
select cust);
//Sorting
if (!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir)))
{
resultData = resultData.OrderBy(sortColumn + " " + sortColumnDir); // Here is failing (OrderBy)
}
totalRecords = resultData.Count();
var data = resultData.Skip(skip).Take(pageSize).ToList();
return Json(new
{
draw = draw,
recordsFiltered = totalRecords,
recordsTotal = totalRecords,
data = data
}, JsonRequestBehavior.AllowGet);
}
}
问题就在这一行:
resultData = resultData.OrderBy(sortColumn + " " + sortColumnDir);
错误:
CS0411 The type arguments for method 'Queryable.OrderBy<TSource, TKey>(IQueryable<TSource>, Expression<Func<TSource, TKey>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly
提前谢谢你们!
我解决了..我添加了命名空间:using System.Linq.Dynamic;并在问题行的 is 中添加了 Tolist():
第一个秋天,您需要安装 NuGet Package Manager(转到项目文件夹并右键单击找到它 NuGet Package Manager),然后安装它
System.Linq.Dynamic.Core
这个包用于我们在 SQL 查询中订购的订单数据。
然后在顶部命名空间上声明名称
using System.Linq.Dynamic.Core;