行タイプのプロパティを指定してソートできるようにしたいデータのテーブルを表示するビューがあります。
私のモデル(これまでのところ)は次のとおりです。
class Model
{
List<DataType> data;
Expression<Func<DataType, object>> SortProperty;
}
次のように、コントローラーに渡されるビューでそれを作成しようとしました:
<a href='<%= Url.Action("Index", "Approvals", new IndexModel() { Page = Model.Page, SortProperty = ((ApprovalModel m) => m.Id)}) %>'>Id</a>
次のようにレンダリングされます。
<a href='/PartsLegislation/Approvals.aspx/Approvals?SortProperty=m%20%3D%3E%20Convert(m.Id)'>Id</a>
そのため、機能するように見えますが(Convert
そこに式があればすべて)、コントローラーSortProperty
では常にnull
.
TL;DR:プロパティを指す式をビューからコントローラーに渡すにはどうすればよいですか?
編集:私のコントローラーのアクションは次のとおりです。
[HttpGet]
public ActionResult Index(Model viewModel)
{
....
viewModel.Approvals = PartsDC.Repository<Approval>()
.Where(a => !a.Deleted)
.OrderBy(viewModel.SortExpression)
.Skip((viewModel.Page ?? 0) * RowsPerPage)
.Take(RowsPerPage)
.Select(a => Mapper.Map<Approval, ApprovalHeaderModel>(a))
.ToList();
...
}