如何设置下拉列表的选择值在asp.net mvc 4

本文关键字:asp net mvc 选择 何设置 设置 下拉列表 | 更新日期: 2023-09-27 17:50:23

我在控制器中有以下代码:

public ActionResult method(int? id){
    var list;
    var project;
    if(id.HasValue){
       list = repository.FindAsync(Identity.User.Id);
       project = list.FirstOrDefault(p => p.Id == id);
       ViewBag.List = list;
       ViewBag.SelectedValue = project.Id;
    }
    return View();
}

我在视图中有这个

<div>
  @Html.DropDownList("projectLists", ViewBag.list as List<SelectListItem>, new { @class = "class"})
</div>

我如何使用ViewBag。用具有该id的项目渲染下拉列表。我需要一点帮助,因为我是新的ASP。净MVC

如何设置下拉列表的选择值在asp.net mvc 4

将其设置为DropDownListFor,并在模型上设置一个SelectedItemID属性以将其发送到。

您需要从一个视图模型开始,以表示您想要显示/编辑的内容

public class MyViewModel
{
  public int SelectedProject { get; set; }
  public SelectList ProjectList { get; set; }
}

然后在GET方法

public ActionResult method(int? id)
{
  IEnumerable<Project> projects = repository.FindAsync(Identity.User.Id);
  MyViewModel model = new MyViewModel()
  {
    SelectedProject = projects.FirstOrDefault(p => p.Id == id),
    ProjectList = new SelectList(projects, "Id", "Name")
  };
  return View(model);
}

在视图中(注意,如果SelectedProject的值与选项的值之一匹配,则该选项将在呈现视图时被选中)

@model yourAssembly.MyViewModel
@using (Html.BeginForm())
{
  @Html.DropDownListFor(m => m.SelectedProject, Model.ProjectList, "-Please select-", new { @class = "class" })
  <input type="submit" ../>
}

和POST方法

public ActionResult method(MyViewModel model)
{
  // model.SelectedProject contains the ID of the selected project
}