javascript - ASP.NET Core MVC Controller 从 ajax 调用接收输入参数为 null

标签 javascript c# ajax asp.net-core .net-core

我有一个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/

相关文章:

c# - 在 C# 和 WCF 中的线程之间共享对象

c# - 在 WPF/C# 中以编程方式更改边距

php - 在回调函数中处理数据,jquery 的 .get 不起作用

javascript - 如何从 dragover 事件中获取源节点

javascript - contenteditable 单行输入

javascript - 按钮切换以在图像和文本显示之间切换/raphael js/javascript/html

c# - UWP 应用中的视频编辑

php - PHP + JS的模板引擎但是

php - 将 JSON 发布到 php 脚本服务器端失败

javascript - 在meteor中使用MongoDB聚合时无法得到正确的结果