Dan*_*man 5 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);
Run Code Online (Sandbox Code Playgroud)
乍一看还不错。
但这一切都在我的控制器中结束了:
这是代码顺便说一句:
[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");
}
Run Code Online (Sandbox Code Playgroud)
它出什么问题了?我忘记了什么?
我尝试JSON.stringify通过添加和删除来尝试,尝试不发送标头(然后抛出415 error)但没有更改。仍然有空值。
UPD:正如阿里在评论中建议的那样,如果我们LoginModel像这样使用它,传递数据就可以了:
public class LoginModel
{
public string name { get; set; }
public string password { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但是为什么它不能以简单的方式像那样工作呢?
消息体中只允许读取一个参数。在您的示例中,您有两个具有 FromBody 属性的参数,这就是您具有空值的原因。
“最多允许从消息体中读取一个参数。”
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |