我有一个ajax调用:
...
$("#testBtn").click(function (e) {
e.preventDefault();
$.ajax({
url: "/profile/GuestList",
data: {"keytype": "1"},
method: "POST",
contentType: "application/json",
success: function (data) {
...
}
});
});
...
和我的 Controller 方法:
[HttpPost]
public async Task<IActionResult> GuestList([FromBody]string keytype)
{
try
{
return Ok();
}
catch (Exception ex)
{
}
}
所以,最初我想发送一个枚举类型,但这不起作用,所以我想发送一个值为 1
的 int,但我一直只得到 0,然后我添加了 [ FromBody]
也是一样的,最后我切换到字符串以防万一,现在我得到了一个空值。
我在所有这些变化中哪里出了错?
最佳答案
创建类
public class KeyTypeViewModel
{
public string Keytype { get; set; }
}
通过删除 [FromBody] 修复操作
[HttpPost]
public async Task<IActionResult> GuestList(KeyTypeViewModel viewModel)
并通过删除 contentType: "application/json"来修复 ajax:
$.ajax({
url: "/profile/GuestList",
data: {keytype: "1"},
method: "POST",
success: function (data) {
...
}
关于javascript - ASP.NET Core MVC Controller 从 ajax 调用接收输入参数为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66564866/