我正在使用Multiselect DropDownList生成多个<select>
我能够生成它,并且工作正常。
但是如果我尝试使用参数来提交它:
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;}
}
您是否尝试过使用助手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)