【发布时间】:2018-10-20 22:56:33
【问题描述】:
尽管在 stackoverflow 上找到了不同的问题和答案,但我无法生成我的代码。
这是我的问题,我想接收客户端的Username和Password进行验证(相等仅用于示例)。
但是LoginPost 变量始终是null。
此外,我很难理解同时向客户端发送 http 代码和 json 的最佳方式。
using Microsoft.AspNetCore.Mvc;
using web.Models;
namespace web.Controllers
{
[Produces("application/json")]
[Route("api/[controller]")]
public class LoginController : ControllerBase
{
[HttpPost]
public ActionResult<LoginPost> LoginPost([FromBody] LoginPost loginPost)
{
// (1) FAIL, loginPost variable is null
if (loginPost.Username == loginPost.Password)
{
return loginPost;
}
// (2) How to add a message like "User/Password fails"
return Unauthorized();
}
}
}
注意代码中的注释(1)和(2)。
这是jQuery code
$.ajax({
url: '../api/Login',
type: 'POST',
dataType: "json",
contentType: "application/json, charset=utf-8",
data: {
Username: username,
Password: password
},
statusCode: {
200: function (data) {
console.log(data);
}
401: function (data) {
console.log(data);
}
500: function (data) {
console.log(data);
}
}
});
和LoginPost.cs 类:
public class LoginPost
{
public string Username { get; set; }
public string Password { get; set; }
}
【问题讨论】:
-
那么上面的代码是做什么的呢?有错误吗?如果有,是什么?
-
@DavidG 我已经解释过了,我不明白你留言的兴趣
-
@DavidG 我可能会重复自己,但
[FromBody] LoginPost数据始终是null。我无法通过 POST 接收数据