私の ASP.NET MVC 2 (RC) プロジェクトでは、AutoMapper を使用して、Linq から Sql クラス (メディア) とビュー モデル (MediaVM) の間をマッピングしています。ビュー モデルには、ビューのドロップダウン用の SelectList プロパティがあります。データベースから SelectList プロパティ項目を設定するためのカスタム値リゾルバーがありますが、(ConstructedBy メソッドを使用して)ソース モデルからリゾルバーにいくつかの値を渡す方法があるかどうか疑問に思っています) a) 選択した項目を定義し、b ) db からアイテムをフィルタリングします。ソース オブジェクトはカスタム リゾルバに渡されますが、リゾルバはさまざまなタイプのソース オブジェクトを持ついくつかの異なるビュー モデルで使用されるため、マッピング構成で値を取得する場所を定義する必要があります。ここに私のビューモデルがあります:
public class MediaVM
{
public bool Active { get; set; }
public string Name { get; set; }
[UIHint("DropDownList")]
[DisplayName("Users")]
public SelectList slUsers { get; private set; }
}
オートマッパー マッピング構成:
Mapper.CreateMap<Media, MediaVM>()
.ForMember(dest => dest.slUsers, opt => opt.ResolveUsing<UsersSelectListResolver>());
.ForMember マッピング句で次のようなことができると便利です。
.ConstructedBy(src => new UsersSelectListResolver(src.UserID, src.FilterVal))
これを達成する方法はありますか?