-1

我正在使用 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 元素,它将选择下拉项目之一。这个怎么做 ?

4

1 回答 1

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 )
}
于 2013-05-28T07:16:51.560 回答