.net 如何将选定值设置为ListBox

.net 如何将选定值设置为ListBox,.net,asp.net-mvc,listbox,multi-select,jquery-multiselect,.net,Asp.net Mvc,Listbox,Multi Select,Jquery Multiselect,我使用调试器检查了MultiSelectList值的内容是否已更改。所以我看到,在选择了值之后,Value=true 但我没有看到我的观点。运行时,所选值不可见。最后,我尝试了ViewBag,ViewData,ListBox()以及其他一些方法。我不明白什么 这是我的控制器: public ActionResult Edit(int id) { UserDto user = _userService.GetUserById(id);

我使用调试器检查了
MultiSelectList
值的内容是否已更改。所以我看到,在选择了值之后,
Value=true

但我没有看到我的观点。运行时,所选值不可见。最后,我尝试了
ViewBag
ViewData
ListBox()
以及其他一些方法。我不明白什么

这是我的控制器:

public ActionResult Edit(int id)
        {
            UserDto user = _userService.GetUserById(id);

            var companiesSelectList = new MultiSelectList(_companyService.GetCompanies(), "Id", "Name", user.Companies.Select(x => x.Id.ToString()).ToArray());


            TempData["CompaniesList"] = companiesSelectList;
            return View(user);
        }
我的看法是:

 <div class="col-md-10">
    @Html.ListBoxFor(model => model.Companies, (MultiSelectList)TempData["CompaniesList"], new { @class = "form-control", @required = "required", @multiple = "multiple" })
            </div>
我的朋友把它修好了

我在CompanySelectList中获得了选定项,但我没有设置选定值。我需要这样的JQuery。 第一:

Json数据包含用户连接的公司,我已发送公司ID

此Ajax方法用于检查所选项目:

 var userId = $('#Id').val();
    $.ajax({
        url: "/User/UserCompany",
        type: 'POST',
        data: { 'userId': userId },
        datatype: 'json',
        success: function (data) {
            $('#Companies').val(data).trigger("change");
        }

    });
谢谢我的工作朋友和任何看我问题的人。
c你还有一个问题:)

@halfer谢谢你的编辑。
   public JsonResult UserCompany(string userId)
        {
            UserDto user = _userService.GetUserById(int.Parse(userId));
            return Json(user.Companies.Select(x => x.Id).ToList(), JsonRequestBehavior.AllowGet);
        }
 var userId = $('#Id').val();
    $.ajax({
        url: "/User/UserCompany",
        type: 'POST',
        data: { 'userId': userId },
        datatype: 'json',
        success: function (data) {
            $('#Companies').val(data).trigger("change");
        }

    });