2012-03-06 7 views
0

これは動作しますが、.cshtmlかみそりビューで複数の列

をDropDownListForを生成する方法:

@Html.DropDownListFor(
    m => m.PersonId, //bound value 
    new SelectList(Model.Persons, "PersonId", "FirstName" , 0), //list 
    " -- Select A Person -- " //default 
) 

しかし、Model.Personsは、Model.Persons.PersonIdModel.Persons.FirstNameを含むことに加えて、Model.Persons.LastNameが含まれています。

姓を選択リストに別の列として表示するにはどうすればよいですか?

答えて

3

両方のプロパティを返す準備完了プロパティであるプロパティ "フルネーム"を追加します。 "FirstName"の代わりにそれを使用することができます

+0

これは簡単な例ですが、私はドロップダウンリストの各行の表示用にビューモデルに文字列を含める必要がありますか?これまで私が見てきたことは、他の人たちも示唆しているものです(つまり、DisplayText = "{0} | {1} | ... etc"、field1、field2) –

+0

ya - ビューモデルには、表示されます。個人的には、表示されるすべてがスーパーセットまたはエンティティのサブセットとして含まれるViewModels(「ドメインモデル」または「エンティティ」ではなく)を使用します。また、上記のようなプロパティ、さらにIEnumerable をモデルに含めると、すべての準備が整います。 –

+0

それは私がやったことのほとんどです。私は 'int id'と' string display'を持つgenericitemsという名前のクラスを作りました。私のビューモデルでは、 'List SomeName'タイプの取引だけを含んでいます。また、リストの開始インデックス値とトップラベルをビューモデルに含めます。 –