-1

MultiSelectList値の内容が変わっていることをデバッガで確認しました。だから私は、の値が選択された後にそれを見ましたValue = true;

しかし、私は私の見解では見ませんでした。を実行すると、選択した値が表示されません。最後に、、、さらにいくつかのことを試しViewBagましViewDataListBox()。私は何を見ませんか?

これは私のコントローラーです:

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>

これを視覚化に使用しました

   $(document).ready(function () {

        $('#Companies').select2({

            placeholder: 'Please Select Company',
            maximumSelectionSize: 15,
            width: 400,
        });
    });
4

1 に答える 1

2

私の友人はそれを修正します。

companySelectList で選択した項目を取得しましたが、選択した値を設定していません。そのようなJQueryが必要です。初め:

   public JsonResult UserCompany(string userId)
        {
            UserDto user = _userService.GetUserById(int.Parse(userId));
            return Json(user.Companies.Select(x => x.Id).ToList(), JsonRequestBehavior.AllowGet);
        }

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");
        }

    });

私の仕事の友人と私の質問を見てくれた人に感謝します。cu 別の質問:)

于 2015-12-30T13:30:35.030 に答える