HtmlHelper函数填充下拉列表

时间:2017-07-12 11:45:07

标签: asp.net-mvc

我正在尝试在ASP.NET MVC中填充下拉控件。我有一个名为City的表,我从这个表中获取记录以填充实体数据。我已经使用ViewBag动态添加。但是它会抛出编译错误。

代码

- 查看

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

4 个答案:

答案 0 :(得分: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");

答案 1 :(得分:2)

您的视图应如下所示:

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

第一个参数是string,它将作为id标记的nameselect属性进行租用。

答案 2 :(得分:1)

这样怎么样,

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

答案 3 :(得分:1)

@Html.DropDownList("cities", ViewBag.cities as SelectList,"Select City")

请使用上面的代码。