How can I combine two fields in a SelectList text description?
I want put in a selected list labels the name and surname of people of an EF model. I've tried with this:
public ActionResult Insert()
{
ViewData["accountlist"] = new SelectList(time.Anagrafica_Dipendente.ToList(), "ID_Dipendente", "Surname Name", null);
Giustificativi g = new Giustificativi();
retu开发者_高级运维rn View(g);
}
but VS returns an error, because there isn't a attribute called "surname name". how can i concat the name and surname in the selectlist label?
thanks
you could do something like this:
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);
Add a new property to time.Anagrafica_Dipendente
which will represent the concatenation of the two properties:
public string Fullname
{
get
{
return string.Format("{0} {1}", Surname, Name);
}
}
and then use this:
ViewData["accountlist"] = new SelectList(
time.Anagrafica_Dipendente.ToList(),
"ID_Dipendente",
"Fullname",
null
);
Update: As of C# 6.0, the property can be more concisely written as:
public string Fullname => string.Format("{0} {1}", Surname, Name);
Learn more about expression-bodied properties here.
I was looking for this answer and my easy way is adding a NotMapped attribute, this is my code:
[NotMapped]
public string FullName
{
get
{
return Name + " " + LastName;
}
}
Then you can use the normal way in the controller, this is my code, Owner the the foreign key related to AspNetUsers
ViewBag.Owner = new SelectList(db.AspNetUsers, "Id", "FullName", product.Owner);
On view
<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>
I'm using .Net 6 Core, but pretty sure I've been doing this for a while now. I broke it into two pieces, but you can cram it all into one SelectList
:
var accountList = time.Anagrafica_Dipendente.Select(x => new
{
x.ID_Dipendente,
FullName = x.Surname + " " + x.Name
});
var selectList = new SelectList(accountList, "ID_Dipendente", "FullName");
精彩评论