ASP.Net アプリケーションで jQuery Bootgrid を実装しようとして、何日も苦労しています。これまでのところ、これは私が持っているものです:(順序による機能はまだ機能していません。後でそれに取り組みます)
public JsonResult IndexJson(RequestData model)
{
var result = (from x in db.ContactSet
select new
{
x.AccountId,
x.FirstName,
x.LastName,
x.FullName,
x.JobTitle,
x.ParentCustomerId,
x.EMailAddress1,
x.Telephone1,
x.MobilePhone,
x.Fax,
x.GenderCode,
x.BirthDate
}); //? Gets all rows
result = (from x in result
where x.FirstName.Contains(model.searchPhrase)
|| x.LastName.Contains(model.searchPhrase)
select x); //? Search Filter
var totalRows = result.Count(); //? Sets totalRows (for ResponseData)
if (model.rowCount == -1)
model.rowCount = totalRows; //? In case View All Rows is selected by Bootgrid (for ResponseData)
// TODO: Add Order By functionality
var tResult = new ResponseData<object>()
{
current = model.current,
rowCount = model.rowCount,
rows = result.ToList(),
total = totalRows
}; //? Builds Json Response
return Json(tResult, JsonRequestBehavior.AllowGet);
}
このコードの問題は、検索機能の後にレコードの総数をカウントする必要があることです。私は LINQ クエリを適切に使用することにあまり熟練していません。
到達するまでvar totalRows = result.Count();
に、次のエラーが表示されます。
System.NotSupportedException: 'メソッド 'Where' はメソッド 'Select' に従うことができないか、サポートされていません。サポートされているメソッドに関してクエリを記述してみるか、サポートされていないメソッドを呼び出す前に、'AsEnumerable' または 'ToList' メソッドを呼び出してください。
ここで何が問題なのですか?