微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Select2 未获取所选项目的价值

如何解决Select2 未获取所选项目的价值

我在编辑表单中有一个 select2 列表,但它似乎没有保存选定的值。我认为这在某一时刻有效,但不确定。 mselect 可以很好地进行选择并且它们在表单上可见,但是当我去保存时,该值为空。

下面是我的 javascript:

<script type="text/javascript">

$(document).ready(function () {
   
var select=    $('.mselect').select2({
        ajax: {
            url: '/Parts/GetPartsBySearch',width: 'resolve',data: function (params) {
                return {
                    q: params.term// search term
                };
            },processResults: function (data) {
                return {
                    results: data.items
                };
            },minimumInputLength: 2,width: 'resolve'
        }
    });

    var model = '@Html.Raw(Json.Encode(Model.SelectedParts))';

    $(".mselect").val(JSON.parse(model)).trigger('change');
})

这是输入:

<div class="col-md-4">
   <div class="form-group">
      @Html.LabelFor(model => model.SelectedParts,htmlAttributes: new { @class = "control-label" })<br />
      @Html.DropDownListFor(model => model.SelectedParts,new SelectList(Model.PartsNum,"Value","Text"),new { @class = "form-control mselect",multiple = "true" })
      @Html.ValidationMessageFor(model => model.SelectedParts,"",new { @class = "text-danger" })
   </div>
</div>

模型:

 public string[] SelectedParts { get; set; }

虽然我不相信控制器与它有任何关系,但这是我针对该部分的帖子:

 foreach (var item in model.SelectedParts)
 {
    ProductMaster prodMast = new ProductMaster
    {
      ProductMasterId = Guid.NewGuid(),Material = Guid.Parse(item),vendorId = model.vendorId,CreatedBy = userId,CreatedDate = System.DateTime.Now
    };

    db.ProductMaster.Add(prodMast);
    db.SaveChanges();
 }

所以 Model.SelectedParts 为空。

我也在使用 JQuery 3.4.1 版

感谢您的帮助!

更新: 我认为 select2 和 @Html.DropdownListFor 存在问题我在控制台窗口中没有看到值。该值实际上在 <option></option> 标签中,而不是用于 ID mselect

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。