これは非常に簡単だと思います。モデル内のリスト内のアイテムの表示名を表示する正しい方法が見つからないようです。
私の簡略化されたモデル:
public class PersonViewModel
{
public long ID { get; set; }
private List<PersonNameViewModel> names = new List<PersonNameViewModel>();
[Display(Name = "Names")]
public List<PersonNameViewModel> Names { get { return names; } set { names = value; } }
}
と名前:
public class PersonNameViewModel
{
public long ID { get; set; }
[Display(Name = "Set Primary")]
public bool IsPrimary { get; set; }
[Display(Name = "Full Name")]
public string FullName { get; set; }
}
ここで、人のすべての名前を表示するテーブルを作成し、DisplayNameForFullNameを取得したいと思います。明らかに、
@Html.DisplayNameFor(model => model.Names.FullName);
動作しません、そして
@Html.DisplayNameFor(model => model.Names[0].FullName);
名前がない場合は壊れます。ここで表示名を取得するための「最良の方法」はありますか?
List<PersonNameViewModel>
思います。これは正しいです?そうは言っても、私は3つの例の中で一番好きだと思います。それ以外の場合は、を入力または貼り付ける必要があるいくつかのプロパティがあります。次に、またはをモデルとして受け入れる部分ビューにセクションをリファクタリングする必要があるかもしれません。IEnumerable<PersonNameViewModel>
model => model.Names.First().FullName
dummyModel
model.Names[0].
List
IEnumerable