【发布时间】:2023-01-31 14:55:48
【问题描述】:
我尝试制作级联下拉菜单,但我在发送和获取响应数据时遇到问题。
后端:
[HttpPost]
public async Task<JsonResult> CascadeDropDowns(string type, int id)
{ .............
return Json(model);
}
在这里我得到了正确的数据。
首先我试过:
$("#dropdown").change( function () {
var valueId = $(this).val();
var name = $(this).attr("id");
let data = new URLSearchParams();
data.append("type", name);
data.append("id", valueId);
fetch("@Url.Action("CascadeDropDowns", "Home")", {
method: "POST",
credentials: "include",
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
},
body: data
})
.then(response => {
console.log('Success:', response);
return response.json();
})
.then(json => {
console.log('Success:', json );
console.log('data:', json.Projects);
PopulateDropDown("#subdropdown1",json.Projects)
})
.catch(error => {
console.log('Error:', error);
});
});
在这里我可以发送请求并获得“成功”返回。然而,当我访问json.Projects时,我只是得到一个`undefined。我试图更改内容类型,但没有成功。
其次我用过:
$.ajax({
url: "@Url.Action("CascadeDropDowns", "Home")",
data: data,
type: "POST",
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
success: function (data) {
console.log(data);
},
error: function (r) {
console.log(r.responseText);
},
failure: function (r) {
console.log(r.responseText);
}
});
有了这个我得到一个非法调用错误。
我必须做什么才能让其中任何一个工作?他们的问题是什么?
【问题讨论】:
-
你遇到了什么问题,可以分享一下吗?同时,你可以
have a look cascading dropdown sample
标签: javascript jquery ajax asp.net-core-mvc fetch-api