2017-07-12 158 views
0

我想填充ASP.NET MVC中的下拉控件。我有一個名爲City的表,我從這個表中獲取記錄以通過實體數據填充。我已經使用ViewBag動態添加。但是它會引發編譯錯誤。HtmlHelper函數來填充下拉列表

代碼

- 查看

<h4>City through db</h4> 
@Html.DropDownList(cities, "Select City"); 

控制器

public class HomeController : Controller 
    { 
     // GET: Home 
     public ActionResult Index() 
     { 
      ActionFilterdbEntities db = new ActionFilterdbEntities(); 
      var cities = db.Cities; 
      ViewBag.cities = new SelectList(cities, "Id", "CityName"); 
      return View(); 
     } 
    } 

型號

[Table("City")] 
    public class clCity 
    { 

     public int Id { get; set; } 
     public string CityName { get; set; } 

    } 
} 

Db的

CREATE TABLE [dbo].[City] (
    [Id]  INT   NOT NULL, 
    [CityName] NVARCHAR (50) NOT NULL, 
    PRIMARY KEY CLUSTERED ([Id] ASC) 
); 

回答

2

你要構建這樣的下拉:

@Html.DropDownList("nameOfTheField", (SelectList)ViewBag.cities, "Select city"); 

如果你把這個下拉列表的形式,讓假設你有一個這樣的模型:

public class SearchModel 
{ 
    public int CityId { get; set; } 
    //etc 
} 

,那麼你會喜歡設置代碼如下:

@Html.DropDownList("CityId", (SelectList)ViewBag.cities, "Select city"); 
+0

謝謝@rajmond。 –

+0

@krishna_v很高興幫助:) –

2

您認爲應該是這樣的:

<h4>City through db</h4> 
@Html.DropDownList("YourInputId", (SelectList)ViewBag.cities, "Select City") 

第一個參數是string將作爲重新返回標籤selectidname屬性。

1

這個怎麼樣,

@{ 
    SelectList cities = ViewBag.cities; 
    } 
@Html.DropDownList("YourDropDownId", cities, "Select City") 
1
@Html.DropDownList("cities", ViewBag.cities as SelectList,"Select City") 

請使用上面的代碼。