我遇到了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
。我也试过了,但没有运气。我想念的是什么?
答案 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) {
}
});