How can I combine two fields in a SelectList text description?

♀尐吖头ヾ 提交于 2019-11-26 07:35:48

问题


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();
            return 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


回答1:


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);



回答2:


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.




回答3:


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);


来源:https://stackoverflow.com/questions/2758734/how-can-i-combine-two-fields-in-a-selectlist-text-description

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!