26

EFモデルの人の名前と名前のラベルを選択したリストに入れたい。私はこれで試しました:

public ActionResult Insert()
        {
            ViewData["accountlist"] = new SelectList(time.Anagrafica_Dipendente.ToList(), "ID_Dipendente", "Surname Name", null);             
            Giustificativi g = new Giustificativi();
            return View(g);
        }

ただし、「surname name」という属性がないため、VSはエラーを返します。選択リストラベルの名前と名前を連結するにはどうすればよいですか?

ありがとう

4

4 に答える 4

57

あなたはこのようなことをすることができます:

ViewData["accountlist"] = 
    new SelectList((from s in time.Anagrafica_Dipendente.ToList() select new { 
        ID_Dipendente=s.ID_Dipendente,
        FullName = s.Surname + " " + s.Name}), 
        "ID_Dipendente", 
        "FullName", 
        null);
于 2010-05-03T14:36:13.993 に答える
36

time.Anagrafica_Dipendente2つのプロパティの連結を表す新しいプロパティを追加します。

public string Fullname 
{
    get 
    {
        return string.Format("{0} {1}", Surname, Name);
    }
}

そしてこれを使用します:

ViewData["accountlist"] = new SelectList(
    time.Anagrafica_Dipendente.ToList(), 
    "ID_Dipendente", 
    "Fullname", 
    null
); 

更新:C#6.0以降、プロパティはより簡潔に次のように記述できます。

public string Fullname => string.Format("{0} {1}", Surname, Name);

式本体のプロパティについて詳しくは、こちらをご覧ください。

于 2010-05-03T14:37:52.317 に答える
4

私はこの答えを探していました、そして私の簡単な方法はNotMapped属性を追加することです、これは私のコードです:

[NotMapped]
public string FullName
   {
     get
       {
         return Name + " " + LastName;
       }
   }

次に、コントローラーで通常の方法を使用できます。これは私のコードです。所有者は、に関連する外部キーです。AspNetUsers

ViewBag.Owner = new SelectList(db.AspNetUsers, "Id", "FullName", product.Owner);
于 2018-12-13T14:06:49.467 に答える
1

表示中

<select asp-for="AccountId" 
            asp-items='new SelectList(from x in Accounts select new { Value = x.AccountId ,Text = x.Name + " " + x.Surname}, "Value","Text")'></select>
于 2021-01-13T09:24:24.120 に答える