javascript - 请求 Axios 到 ASP.Net Core Controller 时所有变量均为空

标签 javascript asp.net ajax asp.net-core axios

这是我的客户请求代码:

import request from 'axios';

//...

     let url = 'Login/SignIn',
                headers = {
                    headers: {
                        'Content-Type': 'application/json'
                    }
                },
                data = JSON.stringify( {
                    name: 'danil',
                    password: 'pwd'
                });

     request.post(url, data, headers);

乍一看还不错。

请求在这里挂起: enter image description here

但在我的 Controller 中,一切都是这样结束的:

enter image description here

顺便说一句,这是代码:

[HttpPost]
        public async Task<ActionResult> SignIn([FromBody]string name, [FromBody]string password)
        {

            var userLoginCommand = new UserLogInCommand {
                Login = name,
                Password = password
            };

            await _dispatcher.DispatchAsync(userLoginCommand);
            return Content(userLoginCommand.Result, "application/json");
        }

有什么问题吗?我忘了什么?

我尝试通过添加和删除 JSON.stringify 来玩弄它,尝试不发送 header (然后它抛出 415 错误)但那里没有任何变化。仍然有空值。

更新: 正如 Ali 在评论中建议的那样,如果我们像这样使用 LoginModel 传递数据就没问题了:

 public class LoginModel
        {
            public string name { get; set; }
            public string password { get; set; }
        }

enter image description here

但为什么它不能像那样以一种简单的方式工作呢?

最佳答案

只允许从消息正文中读取一个参数。 在您的示例中,您有两个具有 FromBody 属性的参数,这就是您具有空值的原因。

请在此处查找文档: https://learn.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

“最多允许从消息正文中读取一个参数。”

关于javascript - 请求 Axios 到 ASP.Net Core Controller 时所有变量均为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45755202/

相关文章:

javascript - 如何从异步调用返回响应?

javascript - 将另一种 javascript 方法绑定(bind)到 Anchor 标记中的 href

javascript - 如何在 youtrack 工作流程中使用 getHours() ?

asp.net - UpdatePanel 只刷新一次

jquery - 如何在 Rails 上启用 Turbolinks 的情况下通过 AJAX 正确渲染部分内容?

javascript - 使用 ajax 将 JSON 数组放入 Select Tag 中仅获取 1 个值

javascript - 这段代码有什么问题(响应式 html-css-js)?

c# - 如何在图像周围放置两个标签(动态地);右边和底部?

asp.net - .NET 3.5/VS 2008 上 ASP.NET Web 服务的自定义 HTTP 基本身份验证

jquery - 在 JMeter 测试期间有捕获 AJAX 流量的好方法吗?