如何设置下拉列表的选择值在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
将其设置为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
}