我想将AJAX参数传递给ASP .Net Core 2中的MVC控制器。

这是我尝试的:

function getMatchesFromChampionshipAsync(championship) {
    console.log(championship);
    $.ajax({
        url: "/Bets/Matches",
        type: "POST",
        data: { "championship": championship },
        dataType: 'json',
        contentType: 'application/json; charset=UTF-8',
        success: function (response) {
            alert(response)
        }
    })
}


我确定参数championship是正确的(我也尝试记录它),但是Controller始终会收到null。这是控制器操作方法代码:

[HttpPost]
    public IActionResult Matches([FromBody] string championship) {
        return Json(championship);
    }


浏览器还会提示null
我还阅读了其他有关此问题,但没有人起作用。

最佳答案

我解决了使用具有单个属性的Class的问题:

public  class Value {
        public String Championship { get; set; }
}


并将其用作Action方法中的Model:

[HttpPost]
public IActionResult Matches([FromBody] Value ch) {
    return Json(ch.Championship);
}


我不知道有没有更简单的方法。

09-25 16:17