jquery没有填充ajax调用中的下拉选项

时间:2018-02-06 23:32:03

标签: c# jquery asp.net-mvc

美好的一天,

我正在使用ajax填充下拉列表。数据来自我的mvc控制器

   [HttpGet]
    public ActionResult GetResult()
    {
        var result = _IInterface.GetList();
        //result is a list that have name, lastname and Id
        if (result == null) return null;
        var jsons= Json(result, JsonRequestBehavior.AllowGet);
        return jsons;
    }

在我的前端,我的ajax调用是从我的动作结果中获取数据而没有任何问题。 这是我观点的一部分

@using (Ajax.BeginForm("CreatePaper", new AjaxOptions()
{
OnSuccess= "ajaxSuccess"
}))
{
 <select id=" countryDropDownList">
        <option value="Select">Select</option>
    </select> 

ajax电话

    $(document).ready(function () {
        $.ajax({
            type: "GET",
            url: "/Author/GetAuthors",

            success: function (data) {

                var options = '';
                var mySelect = $('#countryDropDownList');
                for (var i = 0; i < data.length; i++) {
                    options += '<option value="' + data[i].Name + " " + data[i].LastName + '">' + "test" + '</option>'; 

                }
                console.log(options);   
                $("#countryDropDownList").appendTo(options);
            },
            failure: function () {
                alert("sdfgsdgsdfd");                  
            }
        });          
});

当我检查console.log(选项)时,我得到了这个:

<option value="asdfasd sagasdg">test</option><option value="Select">Select</option>

我的问题是我的代码没有附加选项。有什么问题?谢谢

我已经在不同的地方寻找过:
AJAX Call For Dropdown Lists In MVC

Append items to dropdown jQuery / Ajax

How do I add options to a DropDownList using jQuery?

1 个答案:

答案 0 :(得分:0)

首先,您的id列表的<select>属性中有一个前导空格。当您复制代码时,这可能是一个错字,但如果代码中的代码是这样 - 那将会有问题,因为$("#myId")将无法选择<elem id=" myId"></elem>

其次,您应该使用.append()而不是.appendTo() - 对两个in this article

之间的区别有很好的解释

如果找不到,您还应该从MVC控制器返回[]而不是null。否则,您会说var i = 0; i < data.length;...将评估为null.length,这将导致类型错误