このコードを考えると:
public class PaginationModel<T> : BaseModel
{
public List<T> Rows { get; set; }
public PagingInfo PagingInfo { get; set; }
public void AddColumn<TProp>(Expression<Func<T, TProp>> column)
{
}
}
コードを使えるようにしたい
leadListOutputModel.AddColumn(x => x.DateCreated);
次に、MVCビューで列のコレクションをループし、オブジェクトに対して式を呼び出します。ただし、TPropはメソッド呼び出しで推測されるため、汎用フィールドとして格納されているようには見えません。
private List<Expression<Func<T, TProp>>> columns = new List<Expression<Func<T, TProp>>>();
オブジェクトを使用したり、一般的な利点を失うことなく、これを回避する方法を誰かが考えることができますか?
- - 編集
私は2つのことをしようとしています、
まず、「SortBy」パラメーターをコントローラーに渡します。このパラメーターは、現在((MemberExpression)expression).Member.Nameを介して抽出されている、文字列のプロパティの名前を取ります。次に、私のMVCビューでそのフィールドの値を抽出するFunc。
その理由は、私が与えたAddColumnの例のように、コントローラーで優れた構文を使用して構成可能な列を持つようにしたいページ化されたグリッドを作成しているためです。列を調べてヘッダー行を作成し、モデルのコレクションでそれらをループして、それらに対してFuncを呼び出して値を引き出したいと思います。