使用 AJAX 传递时在 IActionResult 中获取空值
Getting a null value in IActionResult when passed with AJAX
我正在尝试向 ASP.NET 应用程序中的 iActionResult 方法发出 AJAX 请求。请求正在进入该方法,但是当它传递时,它在我的方法中的值为 null。 selectedKommun 的值在控制台查看时始终是一个数字。
$(document).ready(function () {
$('#kommun').change(function () {
var selectedKommun = $("#kommun").val();
var fordonSelect = $('#fordon');
fordonSelect.empty();
if (selectedKommun != null && selectedKommun != '') {
$.ajax({
type: "POST",
url: "/avboka?handler=GetFordon",
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
data: { "Id": selectedKommun },
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
console.log(data);
})
}
});
});
这是我发送请求的方法。我推荐了一些代码来检查Id的值。
[HttpPost]
public IActionResult OnPostGetFordon(int Id)
{
//if (!string.IsNullOrWhiteSpace(kommunFordonId) && kommunFordonId.Length == 3)
//{
// IEnumerable<SelectListItem> regions = _fordonRepo.GetFordon(kommunFordonId);
// var json = JsonConvert.SerializeObject(regions);
// return this.Content(json);
//}
//return null;
return new JsonResult(Id);
}
而不是
contentType: "application/json; charset=utf-8",
尝试
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
这是因为您发送的不是 JSON 内容,而是一个整数。
您实际上也不需要指定数据类型,因为您只发送一个 int。
我正在尝试向 ASP.NET 应用程序中的 iActionResult 方法发出 AJAX 请求。请求正在进入该方法,但是当它传递时,它在我的方法中的值为 null。 selectedKommun 的值在控制台查看时始终是一个数字。
$(document).ready(function () {
$('#kommun').change(function () {
var selectedKommun = $("#kommun").val();
var fordonSelect = $('#fordon');
fordonSelect.empty();
if (selectedKommun != null && selectedKommun != '') {
$.ajax({
type: "POST",
url: "/avboka?handler=GetFordon",
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
data: { "Id": selectedKommun },
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
console.log(data);
})
}
});
});
这是我发送请求的方法。我推荐了一些代码来检查Id的值。
[HttpPost]
public IActionResult OnPostGetFordon(int Id)
{
//if (!string.IsNullOrWhiteSpace(kommunFordonId) && kommunFordonId.Length == 3)
//{
// IEnumerable<SelectListItem> regions = _fordonRepo.GetFordon(kommunFordonId);
// var json = JsonConvert.SerializeObject(regions);
// return this.Content(json);
//}
//return null;
return new JsonResult(Id);
}
而不是
contentType: "application/json; charset=utf-8",
尝试
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
这是因为您发送的不是 JSON 内容,而是一个整数。
您实际上也不需要指定数据类型,因为您只发送一个 int。