2017-04-03 4 views
1

Im Controller habe ich diesen Code und in diesem Moment habe ich DropDown-Liste nur für den Vornamen.So übernehmen Sie Vorname und Nachname in DropDown-Liste

-Code ist hier:

ViewBag.patnikID = new SelectList(db.tbl_patnici, "pID", "firstname"); 

Und ich brauche jetzt einige Code wie folgt aus:

ViewBag.patnikID = new SelectList(db.tbl_patnici, "pID", ("firstname" + "lastname")); 

Wie es zu tun?

Antwort

0

Ihre tbl_patn ici Klasse

public class tbl_patnici 
{ 
    public int pID { get; set; } 
    public string firstname { get; set; } 
    public string lastname { get; set; } 
    //[NotMapped] If you use entityframework then you must use NotMapped attribute. 
    public string fullname { get { return this.firstname + " " + this.lastname; } } 
} 

ViewBag.patnikID = new SelectList(db.tbl_patnici, "pID", "fullname"); 
+1

Vielen Dank an alle, aber @Murat ÖNER Antwort ist für mich am besten. Vielen Dank –

0

Ich würde vorschlagen, dass Sie nicht direkt an die Datenbankquelle binden und stattdessen an Ihr eigenes IEnumerable binden, das die gewünschten Eigenschaften hat. Ich habe oft eine wiederverwendbare "ListItem" -Klasse mit ID- und Text-Eigenschaften und verwende dann eine Funktion, um die Liste mit den gewünschten Daten zu füllen.

Zum Beispiel:

eine neue Klasse erstellen:

public class ListItem 
{ 
    public int ID { get; set; } 
    public string Text { get; set; } 
} 

erstellen eine Hilfsfunktion:

public List<ListItem> GetList() 
{ 
    // get "db" here. 
    return db.tbl_patnici.Select(x => new ListItem { 
     ID = x.pID, 
     Text = x.firstname + " " + x.lastname 
    }); 
} 

Nennen Sie es wie folgt:

ViewBag.patnikID = new SelectList(GetList(), "ID", "Text"); 
0

Sie können dies überprüfen:

@Html.DropDownListFor(model => model.pID, new SelectList(db.tbl_patnici, "pID", Model.firstname + " " + Model.lastname, Model.pID), new { style = " width:260px" }) 
Verwandte Themen