将多重选择的选定值从控制器返回到视图

问题描述 投票:0回答:1

我正在使用Multiselect DropDownList生成多个<select>我能够生成它,并且工作正常。

但是如果我尝试使用参数来提交它:

  1. 名称=空
  2. ObjAOption = [1,2] //假设我在多选中选择了2个选项

ObjAOption将只选择option value='1',而不是选择选项1和2。

有什么方法可以通过在控制器中进行设置来取回所选选项并将其传递回视图?我很想使用HTML帮助程序,而不希望在此部分使用jQuery或javascript。

控制器:

public ActionResult AddObjectA(AddModel am){
      if(ModelState.IsValid){
            //Save
      }
      else {
            am.ObjA = // new List of ObjectA with atleast 4 option
            return View("MyView",am);
      }
}

查看:

@Html.LabelFor(model => model.ObjA, "Object A")
@Html.DropDownList("ObjAOption", new MultiSelectList(Model.ObjA, "Key", "Name"), "-- Select Object A--", new { @class = "custom-select custom-select-sm", multiple="" })
@Html.ValidationMessageFor(m => m.ObjAOption, "", new { @class = "text-danger" })

型号:

public class AddModel {
        [Required]
        public String Name {get;set;}
        public IEnumerable<ObjectA> ObjA{ get; set; }
        [Required(ErrorMessage = "Please select at least one option")]
        public List<int>ObjAOption{ get; set; }
}

public class ObjectA {
        public int Key {get;set;}
        public string Name {get;set;}
}

asp.net-mvc asp.net-mvc-5 html-helper
1个回答
0
投票

您是否尝试过使用助手Hiddenfor

查看:

@Html.LabelFor(model => model.ObjA, "Object A")
@Html.DropDownList("ObjAOption", new MultiSelectList(Model.ObjA, "Key", "Name"), "-- Select Object A--", new { @class = "custom-select custom-select-sm", multiple="" })
@Html.ValidationMessageFor(m => m.ObjAOption, "", new { @class = "text-danger" })
@Html.HiddenFor(m => m.ObjAOption)
© www.soinside.com 2019 - 2024. All rights reserved.