在ASP.NET MVC中,可以使用@Html.DropDownList来创建一个下拉列表。要使用一个列表来编辑项目,可以按照以下步骤进行操作:
public ActionResult Edit(int id)
{
var project = _context.Projects.FirstOrDefault(p => p.Id == id);
var viewModel = new ProjectViewModel
{
Project = project,
ProjectList = _context.Projects.ToList()
};
return View(viewModel);
}
@model ProjectViewModel
@Html.DropDownListFor(model => model.Project.Id, new SelectList(Model.ProjectList, "Id", "Name"), "Select a project")
在上述代码中,model => model.Project.Id表示选定的项目的Id将与ViewModel中的Project.Id属性绑定。第二个参数new SelectList(Model.ProjectList, "Id", "Name")表示项目列表中的Id属性将作为值,Name属性将作为显示文本。第三个参数"Select a project"表示默认显示的文本。
[HttpPost]
public ActionResult Edit(ProjectViewModel viewModel)
{
if (ModelState.IsValid)
{
var project = _context.Projects.FirstOrDefault(p => p.Id == viewModel.Project.Id);
project.Name = viewModel.Project.Name;
// 其他属性更新
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(viewModel);
}
在上述代码中,根据ViewModel中的Project.Id找到对应的项目,并更新相关属性。最后调用SaveChanges()方法保存更改。
这样,就可以使用一个列表来编辑项目的@Html.DropDownList了。