我正在使用Razor语法开发MCV应用程序。 我已将元素传递到下拉列表,我想在viewbag元素的下拉列表中显示所选项目。
下面的代码显示了下拉代码。
控制器代码
[SessionFilterAction]
public ViewResult Details(int id)
{
ViewBag.HODList = new SelectList(db.Employees.Where(e => e.DesignationType == "HOD"), "Id", "FullName");
ViewBag.ItemToBeSelectedInList = 5;
return View(paymentadvice);
}
查看代码
if(ViewBag.DesignationTypeOfLoggedUser == "Staff")
{
@Html.DropDownList("HODList", String.Empty ,new { ???? })
}
现在我想使用viewbag元素,它将选择下拉列表中的一个项目。 这该怎么做 ?
答案 0 :(得分:1)
ViewBag旨在将数据从控制器传递到视图而不是其他方式。 您可以使用HTTP Get方法填充下拉列表,如
[HttpGet]
public MyAction()
{
MyModel model = new MyModel();
// model.DropDwonValues是模型中的通用列表类
model.DropDwonValues= db.Values //replace with your db table
.Select(v => new DropDownItem
{
Text = v.Name //value to go in your text field
Value = v.Id.ToString() //value to go in your ID field
})
.ToList();
return View(model);
}
然后在您看来,您可以这样做:
@using(Html.BeginForm())
{
@Html.LabelFor(m => m.DropDownId)
@Html.DropDownListFor(m => m.DropDownId , Model.DropDwonValues )
}