Javascript 在MVC3的DropdownList中加载成吨的数据

Javascript 在MVC3的DropdownList中加载成吨的数据,javascript,jquery,asp.net-mvc,asp.net-mvc-3,html-select,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 3,Html Select,我的MVC3项目中有Jquery Select2下拉列表。通常,dropdownlist的数据最少为50000条记录。通过ViewBag从控制器传递到视图的记录。当它将数据呈现到页面时,会占用大量时间来加载所有数据 当我点击下拉菜单时,也会出现一些浏览器错误,比如停止脚本编写。我需要知道有没有更好的方法在不影响页面加载的情况下在DropDownList中加载我的内容。我将在这里附加我当前的控制器和视图代码 行动 ViewBag.IssueId = new SelectList(Db.Issues

我的MVC3项目中有Jquery Select2下拉列表。通常,dropdownlist的数据最少为50000条记录。通过ViewBag从控制器传递到视图的记录。当它将数据呈现到页面时,会占用大量时间来加载所有数据

当我点击下拉菜单时,也会出现一些浏览器错误,比如停止脚本编写。我需要知道有没有更好的方法在不影响页面加载的情况下在DropDownList中加载我的内容。我将在这里附加我当前的控制器和视图代码

行动

ViewBag.IssueId = new SelectList(Db.Issues, "id", "Description", item.IssueId);
查看

    @Html.DropDownList("IssueId", string.Empty)
JQuery选择2代码

    $('#IssueId').select2({
        placeholder: 'Select Issue',
        width: '220px',
        allowClear: false
    });

任何下拉列表都不应包含50000条记录

这对我来说太可怕了


你需要重新考虑你试图实现的目标。例如,如果一个用户能够成功加载一个包含这么多选项的下拉列表,那么它将如何使用该下拉列表呢。也许你可以有一个过滤器,可以在下拉列表中加载不同的集合,这个过滤器本身可以是一个下拉列表

您应该尝试将列表项分类(如果可能的话)

例如:

等等

&然后可以使用级联下拉列表进行选择

Group A:items
Group B:items