EFモデルの人の名前と姓のラベルを選択したリストに入れたい。私はこれで試しました:
public ActionResult Insert()
{
ViewData["accountlist"] = new SelectList(time.Anagrafica_Dipendente.ToList(), "ID_Dipendente", "Surname Name", null);
Giustificativi g = new Giustificativi();
return View(g);
}
ただし、「姓名」という属性がないため、VSはエラーを返します。選択リストラベルの名前と姓を連結するにはどうすればよいですか?
ありがとう
あなたはこのようなことをすることができます:
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);
time.Anagrafica_Dipendente
に新しいプロパティを追加します。これは、2つのプロパティの連結を表します。
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);
式本体のプロパティの詳細 ここ 。
私はこの答えを探していました、そして私の簡単な方法はNotMapped属性を追加することです、これは私のコードです:
[NotMapped]
public string FullName
{
get
{
return Name + " " + LastName;
}
}
次に、コントローラーで通常の方法を使用できます。これは私のコードです。所有者はAspNetUsers
に関連する外部キーです。
ViewBag.Owner = new SelectList(db.AspNetUsers, "Id", "FullName", product.Owner);