C# HttpResponseMessage在响应中序列化
我有一个返回HttpResponseMessage的方法。因此,如果查询正确,它将返回一个BadRequest,否则返回200OK 我注意到查询总是以AJAX调用的C# HttpResponseMessage在响应中序列化,c#,ajax,asp.net-core,C#,Ajax,Asp.net Core,我有一个返回HttpResponseMessage的方法。因此,如果查询正确,它将返回一个BadRequest,否则返回200OK 我注意到查询总是以AJAX调用的success方法出现。即使我回了一个不好的请求。在查看我的网络标签后,我注意到一些奇怪的行为。一般请求是200OK,但是HttpResponseMessage在主体中被序列化为JSON 我真的不明白为什么会这样。我的代码如下所示: [HttpPost] public async Task<HttpResponseMessa
success
方法出现。即使我回了一个不好的请求。在查看我的网络标签后,我注意到一些奇怪的行为。一般请求是200OK,但是HttpResponseMessage在主体中被序列化为JSON
我真的不明白为什么会这样。我的代码如下所示:
[HttpPost]
public async Task<HttpResponseMessage> Register([FromBody] RegisterPresentationModel register)
{
if (register == null)
return new HttpResponseMessage(HttpStatusCode.BadRequest)
{
ReasonPhrase = "Value passed in request is null"
};
if (register.Password != register.ConfirmPassword)
return new HttpResponseMessage(HttpStatusCode.BadRequest)
{
ReasonPhrase = "Passwords do not match"
};
var user = new UserPassPresentationModel
{
Email = register.Email,
UserName = register.UserName,
Roles = new List<string> {ApplicationRoles.User},
Password = register.Password,
ConfirmPassword = register.ConfirmPassword
};
return await _userRepo.Add(user);
}
好。。。为什么从控制器返回
HttpResponseMessage
?使用Ok()
,BadRequest
,Json
甚至ObjectResult
来代替这个。是的,我现在改为使用IActionResult并发送这些值。虽然很奇怪,因为我发誓HttpResponseMessage以前是有用的!好。。。为什么从控制器返回HttpResponseMessage
?使用Ok()
,BadRequest
,Json
甚至ObjectResult
来代替这个。是的,我现在改为使用IActionResult并发送这些值。虽然很奇怪,因为我发誓HttpResponseMessage以前是有用的!
$.ajax({
url: "/api/auth/",
type: "post",
headers: {
'Content-Type': "application/json"
},
data: JSON.stringify(register),
success: function (data) {
console.log(data);
},
error: function (data) {
element.registerform.isValid = false;
element.registerform.error = data.responseText;
}
});