在Select2中加载远程数据

时间:2015-12-04 05:15:19

标签: asp.net-mvc-4 jquery-select2

我正在使用Select2's Loading Remote Data Functionality。问题是数据没有加载到dropdownlist。按键remote function正在调用并且数据正在正常返回,但它没有显示在下拉列表。

HTML

<div class=" form-group col-md-4" data-url="@Url.Action("GetStudentWalkInnName")" id="WalkinnName">
 <div>
    <label for="txtEmployee" class=" control-label">
                      Name
    </label>                               
 </div>
  <div>
        <select class="form-control " id="ddlName"></select>
  </div>                    
</div>

Jquery的

//REGISTRATION=>INDEX.JS
$(function () {

var ddlNameUrl=$("#WalkinnName").data("url");
$("#ddlName").select2({
    placeholder: "Search for Name",
    minimumInputLength: 1,
    ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
        url: ddlNameUrl,
        type: "POST",
        dataType: 'json',
        data: function (params) {
            return {
                term: params.term, // search term
                page: params.page
            };
        },
        processResults: function (data, params) {

            params.page = params.page || 1;

            return {
                results: data,

            };
        }

    }
});

});

控制器

 public JsonResult GetStudentWalkInnName(string term)
    {
        try
        {
            var walkInnNameList = _db.StudentWalkInns
                                .Where(s => s.CandidateName.StartsWith(term))
                                .Select(x => new
                                {
                                    Id=x.Id,
                                    Text=x.CandidateName
                                }).ToList();
            return Json(walkInnNameList, JsonRequestBehavior.AllowGet);

        }
        catch (Exception ex)
        {
            return Json("", JsonRequestBehavior.AllowGet);
        }
    }

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:3)

根据documentation,格式是数据应该是名为idname的对象数组,即小写(不是Id和{{1} })。

将查询更改为

Name