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

从SelectList中删除项目会删除表单键

如何解决从SelectList中删除项目会删除表单键

我有一个C#MVC表单,用于将元素从一个选择列表添加到另一个选择列表。从一个列表添加时,我们将其从可用列表中删除,然后将其附加到分配的列表中。

As seen here

此处显示的表单代码是我用来创建表单的代码

@using (Html.BeginForm("SaveBucket","Administration",FormMethod.Post,new { @class = "form-horizontal",role = "form",id = "bucketForm" }))
        {
            ...
                    <div class="form-group">
                        @Html.LabelFor(m => m.JobCodeList,new { @class = "col-md-2 control-label" })
                        <div class="col-sm-4">
                            <h6>Available</h6>
                            @Html.ListBox("availableJobs",new List<SelectListItem>(),new { @class = "form-control",size = "8",style = "width: 100%;" })
                        </div>
                        <div class="col-sm-1" style="margin-top:72px;">
                            <button type="button" class="btn btn-default" id="btnRight">
                                <span class="glyphicon glyphicon-chevron-right"></span>
                            </button>
                            <button type="button" class="btn btn-default" id="btnLeft">
                                <span class="glyphicon glyphicon-chevron-left"></span>
                            </button>
                        </div>
                        <div class="col-sm-4">
                            <h6>Assigned</h6>
                            @Html.ListBox("assignedJobs",style = "width: 100%;" })
                            @Html.ValidationMessage("assignedJobs")
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" value="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                    <button type="submit" value="submit" id="saveBucket"  class="btn btn-primary">Save Bucket</button>
                </div>
            </div>
        }

此处是用于在可用元素和已分配元素中添加删除元素的代码

$(document).ready(function () {
            $('#btnRight').click(function(e) {
                var selectedOpts = $('#availableJobs option:selected');
                if (selectedOpts.length == 0) {
                    e.preventDefault();
                }

                $('#assignedJobs').append($(selectedOpts).clone());
                $(selectedOpts).remove();
                e.preventDefault();
            });
            // Removing job                
            $('#btnLeft').click(function (e) {
                var selectedOpts = $('#assignedJobs option:selected');
                var selectedOptsIndex = $(this).index();
                alert(selectedOptsIndex);
                if (selectedOpts.length == 0) {
                    e.preventDefault();
                }

                $('#availableJobs').append($(selectedOpts).clone());
                $(selectedOpts).remove();
                e.preventDefault();
            });

所有这些最终都大致在API部分中完成:

 [CustomAuthorize("AdministratorAccessRole")]
        [HttpPost]
        public ActionResult SaveBucket(FormCollection collection)
        {
            string areaId = "";
            Bucket bucket = new Bucket();
            if (ModelState.IsValid) // check to see if any users are missing required fields. if not...
            {
                foreach (string key in collection.AllKeys)
                {
                    switch (key)
                    { 
                         case "assignedJobs":
                            List<string> jobCodeList = new List<string>(collection[key].Split(','));
                            foreach (string jobCode in jobCodeList.Where(item => !string.IsNullOrEmpty(item)))
                            {
                                bucket.JobCodeList.Add(decimal.Parse(jobCode,NumberStyles.Float));
                            }
                            break; ... }

我发现的问题是,当我从可用内容添加一些东西以正确分配项目时,以及单击“提交”按钮时,API会接收该集合,并且正确填充了AssignedJobs键并能够读取正确的数据。但是,在从分配给可用项的元素中删除后,使用左燕尾形,即使选择列表看起来正确,该集合也将被发送到API,而没有分配的作业密钥,只要该元素已从分配中删除并附加到可用的。 它不会从列表中删除单个元素并再次生成密钥,而是在单击“提交”按钮后将其从集合中完全删除

我只是想从选择列表中删除一个选项时,是否缺少某些导致我删除该键的删除项?

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