2017-05-09 2 views
0

Ich habe die folgende Abfrage.
Ich möchte zwei Tabellen verbinden und die eine Spalte in der Dropdown-Liste anzeigen.Verbinden Sie zwei Tabellen aus der Datenbank und zeigen Sie eine Spalte Werte in der Dropdown-Liste in MVC

Der Controller-Code:

// GET: SelectLLD 
public ActionResult Index() 
{ 

    var sLoginName = Session["LoginName"]; 
    var iLoginId = Session["LoginID"]; 

    if(sLoginName!= null) 
    { 
     ViewBag.LoginId = iLoginId; 


     //Db context object 
     enterpriseEntities db = new enterpriseEntities(); 

     var lob = from l in db.Lobs 
        join r in db.Rights 
        on l.LobID equals r.LobID 
        //where r.LoginID = 
        select new 
        { 
         l.LobName 

        }; 
     SelectList list = new SelectList (lob, "lobname"); 

     ViewBag.LobNames = list; 
     return View(); 

    } 
    else{ 

     return RedirectToAction("Index", "Login"); 
    } 


} 

Die Ansicht Code:

@{ 
    ViewBag.Title = "Index"; 
} 
<h4>Welcome @Session["LoginName"]</h4> 
<h4>@ViewBag.LoginId</h4> 
<h3>Select LOB</h3> 

<div> 
    @Html.DropDownList("LobNames", "Select a Value") 
</div> 
<h3>Select Bussiness Date </h3> 

Das Problem ist, dass mit dem obigen Code, den ich einen den Spaltennamen auch immer mit dem Spaltenwert in der Drop- hinzugefügt Liste unten. Unten ist der Screenshot

Ich bekomme den Spaltennamen und den Wert. i am getting the out having column name and the value

Ich möchte nur die Spaltenwerte in der Dropdown-Liste angezeigt werden. Zum Beispiel sollte nur der "Sales" -Wert angezeigt werden.

Antwort

0

Können Sie den SelectList list = new SelectList (lob, "lobname"); Code in etwas wie das ändern?

var list = logb.Select(x => new SelectListItem { 
      Value = x.LobID.ToString(), 
      Text = x.LobName 
     }).ToList(); 

Dies würde bedeuten, Sie die LobId zur Original wählen wie so

var lob = from l in db.Lobs 
        join r in db.Rights 
        on l.LobID equals r.LobID 
        //where r.LoginID = 
        select new 
        { 
         LobName = l.LobName, 
         LobID = L.LobID 
        }; 

EDIT hinzufügen müssen haben: Dies wird vorausgesetzt, Sie der LobID Wert übergeben werden sollen, wenn Sie das Formular aus und nicht die einreichen LobName.

+1

Vielen Dank Schade, es funktioniert wie erwartet Ich brauchte Lob Name in der Dropdown-Liste Ich habe den Code entsprechend geändert – Brijesh

Verwandte Themen