Asp.net mvc M-V-C:如何在编辑模式下获取或指示列表框中的选定项?

Asp.net mvc M-V-C:如何在编辑模式下获取或指示列表框中的选定项?,asp.net-mvc,ef-code-first,listboxitem,Asp.net Mvc,Ef Code First,Listboxitem,我正在创建可多选列表框。我能够成功地将项目从模型渲染到列表框。以下是我的代码: 属性 public IEnumerable<SelectListItem> carTypes { get; set; } public IEnumerable<string> selectedCarTypes { get; set; } 问题在于编辑操作。我一直试图突出显示编辑视图中为特定AssignId选择的所有列表框,例如,在列表框中有三个项目:现代、丰田和宝马,我选择宝马和丰田并创建分

我正在创建可多选列表框。我能够成功地将项目从模型渲染到列表框。以下是我的代码:

属性

public IEnumerable<SelectListItem> carTypes { get; set; }
public IEnumerable<string> selectedCarTypes { get; set; }
问题在于编辑操作。我一直试图突出显示
编辑视图中为特定
AssignId
选择的所有列表框,例如,在列表框中有三个项目:现代、丰田和宝马,我选择宝马和丰田并创建分配。现在,当我回到编辑视图时,它应该突出显示宝马和丰田

我从中获取了参考资料,但没有为我工作。这个问题有什么解决办法吗

修改:这是我的
编辑操作

public ActionResult Edit(int? id)
{
     if (id == null)
     {
         return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
     }
     Assigning assign = db.Assigning.Find(id);
     if (assign == null)
     {
         return HttpNotFound();
     }
     return View(assign);
}

您可以将其作为SelectList传递,SelectList接受所选值

public SelectList(IEnumerable items,object selectedValue)

就你而言

@Html.DropDownListFor(n => n.selectedCarTypes, 
                     new SelectList(Model.carTypes, Model.SelectedCarTypes)) 

编辑以下内容时,您没有设置模型:

  • Model.carTypes
    应该是所有carTypes和

  • Model.selectedTypes
    应该是所有选定值的
    列表


  • 发布您的编辑方法。完成。请立即检查在编辑操作中,您将在何处添加
    carTypes
    ?您需要在编辑时为所选车型设置
    selected=true
    。您可以解释如何从DB此行中获取保存的车型
    Assigning assign=DB.Assigning.Find(id)?不工作。我需要列表框而不是下拉列表
    
    public ActionResult Edit(int? id)
    {
         if (id == null)
         {
             return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
         }
         Assigning assign = db.Assigning.Find(id);
         if (assign == null)
         {
             return HttpNotFound();
         }
         return View(assign);
    }
    
    @Html.DropDownListFor(n => n.selectedCarTypes, 
                         new SelectList(Model.carTypes, Model.SelectedCarTypes))