2014-12-19 74 views
-1

如何設置下拉列表的選定值?當下拉列表綁定時,選定的值/項目應該是保存在數據庫中的最新數據。 這裏是到目前爲止,我已經得到了什麼:Html.DropDownList SelectedValue

控制器:

int userid = int.Parse(UserID); 
if (!string.IsNullOrEmpty(UserID)) 
{ 
    IEnumerable<SelectListItem> address = db.Address 
    .Where(c => c.UserID == userid) 
    .OrderByDescending(c => c.ID) 
    .Select(c => new SelectListItem 
    { 
     //make drop down list multi line 
     // display complete address 
     Value = c.ID.ToString(), 
     Text = c.StreetName + ", " + c.City 
    }); 

    ViewBag.AddressID = address; 
} 

return View(); 

控制器:

@Html.DropDownList("AddressID", null, "Select Address", new { @class = "dropdown-toggle col-md-9 form-control" }) 

回答

3

試試這個

在它Model.values我提到有關你通過的列表。 和Value定義了每個選項在下拉列表中的值。 和文本定義了您可以在下拉框 中看到的文本值,而我設置爲4 id的值表示數據庫中選定文本的值。

注意:new SelectList(Model.values, "Value", "Text", "4")其中我在這裏定義的4個I是您選擇的地址的值。請傳遞該區域中選定文本的值。

請嘗試下面的代碼。

@Html.DropDownList("AddressID", new SelectList(Model.values, "Value", "Text", "4"), "Select Address", new { @class = "dropdown-toggle col-md-9 form-control" }) 
1

執行以下操作

int userid = int.Parse(UserID); 
    if (!string.IsNullOrEmpty(UserID)) 
    { 
     IEnumerable<SelectListItem> address = db.Address 
     .Where(c => c.UserID == userid) 
     .OrderByDescending(c => c.ID) 
     .Select(c => new SelectListItem 
     { 
      //make drop down list multi line 
      // display complete address 
      Value = c.ID.ToString(), 
      Text = c.StreetName + ", " + c.City 
     }); 

     ViewData["DropDownSource"] = address.ToList(); 
    } 

    return View(); 

在查看

@Html.DropDownListFor(model => model.AddressID, new SelectList((System.Collections.IEnumerable)ViewData["DropDownSource"], "Value", "Text", Model.AddressID), "Select Address", new { @class = "dropdown-toggle col-md-9 form-control" })