Ajax调用填充下拉列表jquery

时间:2018-02-07 12:54:29

标签: jquery ajax

我遇到了ajax调用的问题。

我在控制器中有这个:

[CanAccessAPI(Module.ManagementPlan, SubModule.ManagementPlanDescriereParcelara, UserRight.List)]
    [System.Web.Http.HttpPost]
    [Route("api/v1/PlotDescriptions/GetCodes/{geometryType}")]
    public ArrayList GetCodes(string geometryType)
    {
        return new ArrayList()
        {
            new { Value = 1, Display = "Code1" },
            new { Value = 2, Display = "Code2" }
        };
    }

我有javascript代码

function closeDialog(options) {
    var $temp = $("<input/>", { id: 'temp' });
    //$temp.val($(options.element).text()).select();
    //document.execCommand("copy");

    //var title = $("#geometry-dialog").dialog("option", "title");
    //console.log($temp);
    $temp.remove();
    var geometryType = "Linestring";

    var fileurl = "@Url.Action("GetCodes", "PlotDescriptions")";
    $.ajax({
        url: "PlotDescriptions/GetCodes" ,
        type: "GET",
        data: { geometryType: geometryType}, 
        success: function (data) {
            $("#ddlCod").get(0).options.length = 0;
                    $("#ddlCod").get(0).options[0] = new Option("Select code", "-1");

                    $.each(data.d, function (index, item) {
                        $("#ddlCod").get(0).options[$("#ddlCod").get(0).options.length] = new Option(item.Display, item.Value);
                    });

            $('#saveGeometryType_dialog').modal('show');
        },
        error: function () {
            alert("Failed to load codes");
            // on error enable button
           // $('#btnQuashLot').removeAttr("disabled");
        }
    });

我在这里有对话框,我需要通过dropdown来填充ajax。 我尝试了很多方法,但由于某种原因它从未进入控制器方法。 我尝试以更多方式设置网址,但没有一个解决了问题。 在控制器方法中,我没有[HttpPost]属性,我补充说,但它没有解决问题。我在这里说,如果我用HttpPost装饰方法,在ajax调用中我可以放GET。我也试过了,但没有运气。我想念的是什么?

1 个答案:

答案 0 :(得分:0)

  $.ajax({
                    type: 'POST',
                    url: 'PlotDescriptions/GetCodes',
                    dataType: 'json',
                    data: {  geometryType: geometryType },
                    success: function(datas, textStatus, jqXHR) {
                        if (datas != null) {
                            $("#ddlCod").empty();
                            $("#ddlCod").append("<option value='0'>--Select--</option>");
                            $.each(datas,
                                function(i, c) {
                                    $("#ddlCod").append('<option value="' + c.Value + '">' + c.Text + '</option>');

                                });
                        }
                    },
                    error: function(ex) {

                    }
                });
相关问题