1

私は動作する次のコードを持っています:

ViewBag.Resources = New SelectList(db1.Tbl_Resources, "Resource_ID", "Resource_FirstName")

名だけでなく、名前も表示したいので、これを試しました。

ViewBag.Resources = New SelectList(db1.Tbl_Resources, "Resource_ID", "Resource_FirstName" + " " + "Resource_LastName")

Resource_FirstNameResource_LastNameただし、「 。」というモデルプロパティを検索しているように見えるため、機能しませんでした。SelectList()メソッドで使用するためにこれらを連結するにはどうすればよいですか?

4

1 に答える 1

7

Mvc の SelectList コンストラクターは dataTextField 引数とリフレクションを使用して実行時にプロパティ値を "プル" するため、そこで行っていることを達成する方法はありませんが、簡単な回避策があります。

たとえば、「キャプション」と呼ばれるテーブルクラス(EFを使用する場合は部分クラスを使用)に新しい読み取り専用を適切に作成します。次に、ゲッターで Resource_FirstName" + " " + Resource_LastName を返します

class db1.Tbl_Resources
{
    public string Caption { get {return Resource_FirstName + " " + Resource_LastName;}}
}

次に、ビューまたはヘルパーで

New SelectList(db1.Tbl_Resources, "Resource_ID", "Caption");

少なくとも、それが私がそのシナリオを処理する方法であり、これはかなり一般的です.

于 2012-10-16T18:46:51.497 に答える