私はMVCcontribを使用してグリッドを作成するためのこの素晴らしいウォークスルーに従ってきました。
ただし、私のバージョンでは、エンティティへのlinqではなくNHibernateを使用しています。
コードは、ソートの時点まで正常に機能しています。
public ActionResult Index(string clientName, int? countryId, GridSortOptions gridSortOptions, int? page)
{
var clientList = from c in this.ClientRepository.Query
select new ListedClientViewModel(c);
//Set default sort column
if (string.IsNullOrWhiteSpace(gridSortOptions.Column))
gridSortOptions.Column = "ClientName";
// Filter on clientName
if (!string.IsNullOrWhiteSpace(clientName))
clientList = clientList.Where(c => c.ClientName.StartsWith(clientName));
// Filter on country
if (countryId.HasValue)
clientList = clientList.Where(c => c.CountryId == countryId);
// Order and page the clients
var clientPageList = clientList
//Sorting causes error.
//.OrderBy(gridSortOptions.Column, gridSortOptions.Direction)
.AsPagination(page ?? 1, 10);
var clientListContainer = new ClientListContainerViewModel
{
ClientPageList = clientPageList,
GridSortOptions = gridSortOptions
};
return View(clientListContainer);
}
行のコメントを外す.OrderBy(gridSortOptions.Column, gridSortOptions.Direction)
と、ビューにヒットしたときに失敗します。System.NotSupportedException {"NewExpression"}
この問題を解決する方法はありますか?
どうもありがとう、コーハン。