Моя модель:
public class UserModel
{
public int RoleID { get; set; }
public string RoleName { get; set; }
public string[] RegionList { get; set; }
public List<UserModel> GetRoleList { get; set; }
}
с контроллера, я заполняю свой список,
UserModel us = new UserModel();
us.GetRoleList = db.Roles.Select(c => new UserModel
{
RoleID = c.RoleID,
RoleName = c.RoleName
}).ToList();
return View(us);
мой выпадающий список с множественным выбором здесь,
@Html.DropDownListFor(model => model.RegionList,Model.GetRoleList.Select(x => new SelectListItem
{ Text = x.RoleName, Value = x.RoleID.ToString() }), new { @class = "chosen-select form-control ", @multiple = true })
jquery сценарий:
<script>
$('.chosen-select').chosen();
</script
Он работает отлично, и я могу сохранить раскрывающиеся значения для выбора milti.
But when i try to Edit
это я не могу заполнить выбранное значение в раскрывающемся списке мой метод контроллера is,
us.RegionList = new string [2];
for(int inc=0; inc<2;inc++)
us.RegionList[inc] = Urlist[inc].RoleID.ToString();
Выше здесь я просто пытаюсь добавить повторно выбранные значения в список регионов. Получить список ролей остается таким же, как указано выше, и раскрывающийся список также такой же,
@Html.DropDownListFor(model => model.RegionList,Model.GetRoleList.Select(x => new SelectListItem
{ Text = x.RoleName, Value = x.RoleID.ToString() }), new { @class = "chosen-select form-control ", @multiple = true })
Но он не показывает выбранные значения
Надеюсь на ваши предложения
**EDITED:**
I решил это, изменив раскрывающийся список на список для
@Html.ListBoxFor(model => model.RegionList, Model.GetRoleList.Select(x => new SelectListItem
{ Text = x.RoleName, Value = x.RoleID.ToString() }), new { @class = "chosen-select col-md-3", multiple = "multiple" })
и изменив public string[] RegionList { get; set; }
на public int[] RegionList { get; set; }
и добавив js,
$(".chosen-select").trigger("chosen:updated");
$(".chosen-select").trigger("list:updated");
$(".chosen-select").chosen().change();
);