2

私のビューでは、この Select2 入力ボックスがタグ コントローラーとして機能しています。

CSHTML

<input id="tagSelector" type="hidden" style="width: 300px"/>

JS

  $('#tagSelector').select2({
            placeholder: 'Select a tag...',
            multiple: true,
            ajax: {
                url: '@Url.Action("SearchTags", "UnitDetails")',
                dataType: 'json',
                data: function(term, page) {
                    return {
                        searchTerm: term
                    };
                },
                results: function(data, page) {
                    return { results: data };
                }
            },
            createSearchChoice: function(term) {
                return { id: term, text: term };
            }
        }).on("removed", function(e) {
            var url = '@Url.Content("~/UnitDetails/UnTagUnit/" + Model.ViewUnitContract.Id)';
            var id = e.val;
            var tagName = e.choice.text;
            console.log(id + " : " + tagName);

            $.ajax({
                url: url,
                data: { selectedItem: tagName },
                type: 'GET',
                dataType: 'json',
                success: function() {
                },
                error: function() {
                }
            });
        })
            .on("select2-selecting", function(e) {
                var url = '@Url.Content("~/UnitDetails/TagUnit/" + Model.ViewUnitContract.Id)';
                var id = e.val;
                var tagName = e.object.text;
                console.log(id + " : " + tagName);

                $.ajax({
                    url: url,
                    data: { selectedItem: tagName },
                    type: 'GET',
                    dataType: 'json',
                    success: function() {
                    },
                    error: function() {
                    }
                });
            });
    });

C#

public JsonResult GetInitialTags(int id)
{
    Model = new UnitDetailsModel(UnitClient.GetUnit(id));
    foreach (var tag in Model.ViewUnitContract.Tags)
    {
        Model.TagsSelected.Add(tag);
    }

    var result = Model.TagsSelected.Select(a => new
        {
            id = a.Id,
            text = a.Name
        });

    return Json(result, JsonRequestBehavior.AllowGet);
}

現在、initSelection入力ボックスに既に選択されているタグを入力するために を使用する方法がわかりません。私は少し迷っていると感じ始めているので、誰かがこれで私を助けてくれることを望んでいました:)

4

1 に答える 1