首页 > 解决方案 > 在 ViewBag Contents 中的 Select2 中添加和预选值

问题描述

我正在解析推文并希望捕获任何 HashTag。我使用 Select2 在我们的数据库中维护一个 Hashtags 列表。如果我正在解析的 Tweet 的 HashTag 尚未在我们的数据库中,我想将它们添加到 Select2 列表中并突出显示它们(使用 Tgas 选项)。提交表单后,它们将被添加到数据库中,并在它们下次出现在推文中并在 Select2 控件中预选时识别它们。

以为我有这个工作,因为下面的代码将从 Tweet 解析的 Hashtags 添加到 Select2 中并突出显示它们,但是当我第二次针对同一个 Tweet 进行测试时,它只是添加了 2 个新的 Hashtags,并突出显示它们,而不是突出显示第一次测试中的 Hashtags。

我希望这很清楚。见附图

我的剃须刀

string PreSelectedTags = string.Empty;
if (ViewBag.Tags != null)
{
    string[] values = ViewBag.Tags.Split(',');
    PreSelectedTags = "[" + string.Join(", ", values.Select(s => $"'{s.Trim()}'")).Replace("#","") + "]";
}

我的JS

@if (!string.IsNullOrEmpty(PreSelectedTags))
{
    <text>

    var tags = @Html.Raw(PreSelectedTags);

    if (tags.length > 0) {
        $('#TagIds').select2({ multiple: true, tags: true, data: tags });
        $('#TagIds').val(tags);
        $('#TagIds').trigger('change');
    }

    </text>
}

新添加的和以前添加的出现

标签: asp.net-mvcjquery-select2

解决方案


推荐阅读