C# 属性,并使用@Html.TextboxFor(m=>m.SelectedTags)将脚本更改为$(“#SelectedTags”)。select2(…。您当前的输入没有name属性,因此不会发回任何内容。让我澄清一下,您必须更改文本框id=“标记”因此Ta

C# 属性,并使用@Html.TextboxFor(m=>m.SelectedTags)将脚本更改为$(“#SelectedTags”)。select2(…。您当前的输入没有name属性,因此不会发回任何内容。让我澄清一下,您必须更改文本框id=“标记”因此Ta,c#,asp.net-mvc,html,razor,jquery-select2,C#,Asp.net Mvc,Html,Razor,Jquery Select2,属性,并使用@Html.TextboxFor(m=>m.SelectedTags)将脚本更改为$(“#SelectedTags”)。select2(…。您当前的输入没有name属性,因此不会发回任何内容。让我澄清一下,您必须更改文本框id=“标记”因此Tags属性的绑定将与隐藏的输入绑定 namespace Blog.Data.Entities { public class Post { public virtual long PostId { get; set;


属性,并使用
@Html.TextboxFor(m=>m.SelectedTags)
将脚本更改为
$(“#SelectedTags”)。select2(…
。您当前的输入没有name属性,因此不会发回任何内容。让我澄清一下,您必须更改文本框id=“标记”因此Tags属性的绑定将与隐藏的输入绑定
namespace Blog.Data.Entities
{
    public class Post
    {
        public virtual long PostId { get; set; }

        -------------------

        public virtual ICollection<Tag> Tags { get; set; }
    }

    public class Tag
    {
        public virtual long TagId { get; set; }
        public virtual string Name { get; set; }
        public virtual string Description { get; set; }
    }
}
// POST: /Post/Create
    [HttpPost]
    public ActionResult Create(PostsCreateViewModel postModel)
    {
        if (ModelState.IsValid)
        {
            Post post = new Post
            {
                Title = postModel.Title,
                Body = postModel.Body,
                PostDate = _dateTime.UtcNow
            };

            foreach (var tag in postModel.Tags)
            {
                post.Tags.Add(_tagRepository.GetTag(tag.TagId));
            }

            _postRepository.SavePost(post);

            return RedirectToAction("Detail");
        }
        return View(postModel);
    }
<script type="text/javascript">
    $(document).ready(function () {
        $("#tags").select2(
        {
            placeholder: "Select a Tag",
            minimumInputLength: 1,
            multiple: true,
            maximumSelectionSize: 5,
            ajax: {
                url: '@Url.Action("SearchTag", "Post")',
                dataType: 'json',
                data: function (term, page) {
                    return {
                        searchTerm: term,
                        page_limit: 10,
                        page: page,
                    };
                },
                results: function (data, page) {
                    var more = (page * 10) < data.total;
                    return { results: data, more: more };
                }
            }
        });
    });
</script>
<div class="form-group">
            @Html.LabelFor(model => model.Title, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Title)
                @Html.ValidationMessageFor(model => model.Title)
            </div>
        </div>
<div class="form-group">
    @Html.LabelFor(model => model.Tags, new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        <input id="tags" style="width: 300px" />
        @Html.ValidationMessageFor(model => model.Tags)
    </div>
</div>
    <select name="abc" multiple>
        <option value=1>a</option>
        <option value=2>b</option>
        <option value=3>c</option>
        <option value=4>d</option>
    </select>
public ActionResult ActionName(IEnumerable<int> abc)  
<input type="hidden" name="Tags[0].TagId" value="1" />
<input type="hidden" name="Tags[1].TagId" value="2" />
<input type="hidden" name="Tags[2].TagId" value="3" />
@Html.ListBoxFor(M => M.TagsId, new MultiSelectList(Model.Tags, "Id", "Description"), new { @class = "form-control select-multiple", multiple = "multiple" })
 public List<Tag> Tags { get; set; } = new List<Tag>();
 public int[] TagsId { get; set; }
@Html.DropDownListFor(m => m.SubCategories, Model.CategoryList, Html.DescriptionFor(m => m.SubCategories), new { @class = "form-control m-select2 select2", multiple = "multiple" })
@using Newtonsoft.Json;


<script>
    //Edit mode
    //set "selected" prop for the <select> manaually
    $(function () {
        var SubCategories_selected = @JsonConvert.SerializeObject(Model.SubCategories);
        SubCategories_selected.forEach(function (value, index) {
            $('[name="SubCategories"]').find(`[value="${value}"]`).prop("selected", true);
        });
        //recall the select2 init
        $('#SubCategories').select2();
    });
</script>