我正在尝试在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)
);
答案 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
标记的name
和select
属性进行租用。
答案 2 :(得分:1)
这样怎么样,
@{
SelectList cities = ViewBag.cities;
}
@Html.DropDownList("YourDropDownId", cities, "Select City")
答案 3 :(得分:1)
@Html.DropDownList("cities", ViewBag.cities as SelectList,"Select City")
请使用上面的代码。