首页 > 解决方案 > formCollection 不会从视图中捕获列表框组件

问题描述

我有以下代码包装在表单标签内的视图:

     <select name="@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector1" id="@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector1" multiple="multiple" style="width: 300px;height: 100px">
                                                                                    @foreach (SchoolSystemMVCRazor.Models.General.Subject subject in leftSubjects)
        {
            <option value="@subject.SubjectId">@subject.DisplayName</option>
        }
        </select>
    <input type="button" style="width: 300px" id="toRight" value=">" />

    <select name="@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector2" id="@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector2" multiple="multiple" style="width: 300px;height: 100px">
@foreach (SchoolSystemMVCRazor.Models.General.Subject subject in rightSortedSubjects)
    {
    <option value="@subject.SubjectId">@subject.DisplayName</option>
    }
    </select>
    <input type="button" style="width: 300px" id="toLeft" value="<" />



<script>
    $(function() {
        function moveItems(origin, destination) {
            $(origin).find(':selected').appendTo(destination);
        }
        $('#toLeft').on('click', function() {
            moveItems('#@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector2', '#@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector1');
        });
        $('#toRight').on('click', function() {
            moveItems('#@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector1', '#@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector2');
        });
        $('#toLeftAll').on('click', function() {
            moveAllItems('#@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector2', '#@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector1');
        });
        $('#toRightAll').on('click', function() {
            moveAllItems('#@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector1', '#@SchoolSystemMVCRazor.Models.Miscellaneous.Helpers.RazorHelper.ReportCardSubjectSequence.Selector2');
        });
    });
</script>

组件视图

一切似乎都在工作,直到我点击选择器2(右)上的项目并将其移动到左侧。现在我的 C# 脚本中的 formCollection 只捕获 selector1。selector2 值对我来说很重要,因为我需要按添加的顺序提取 selector2 上用户选择的值。

调试只显示 selector1

我想知道我在编码方面做错了什么,导致 selector2 没有在 formCollection 中被捕获?任何 javaScript 或 C# 专家都可以提供帮助,因为我不知道出了什么问题,因为我是 Web 开发的新手?

标签: javascriptc#formcollection

解决方案


推荐阅读