【发布时间】:2021-04-14 19:59:36
【问题描述】:
我的控制器操作有以下代码
[HttpPost]
public async Task<IActionResult> MonthsToAdd(List<string> months)
{
}
我的ajax代码如下
$("#btnSave").on("click", function () {
var months= [];
var value = $("input[name=monthsAvailable]:checked").val()
var lengths = $("input[value=" + value + "]").closest(".row").index()
console.log($("input[value=" + value + "]").closest(".row").index())
for (var i = 0; i <= lengths; i++) {
months.push($(".outer .row:eq(" + i + ") input:radio").val())
}
console.log(JSON.stringify(months));
$.ajax({
contentType: 'application/json;',
dataType: 'json',
type: 'POST',
url: '/AreaName/Controller/MonthsToAdd',
data: JSON.stringify({ 'months': months}),
success: function (response) {
alert("success.");
}
});
});
在浏览器控制台中,我看到所有正确的参数,但 MVC 操作没有接收到参数。 array.count shows 0。我在这里错过了什么?
【问题讨论】:
-
使用
{ 'months': months},您将传递一个包含months作为属性的对象。但是您的控制器接受List所以更改为data: JSON.stringify(months),以从 js 传递数组 -
@user1672994 谢谢,我也试过了,还是一样
-
这是 MVC 还是 Razor 页面应用程序?
-
我已经添加了相关标签
-
所以它是 .NET core-mvc 而不是 razor-pages,我再次更新了标签
标签: c# jquery asp.net ajax asp.net-core-mvc