我正在尝试调试代码,但是在将[frombody]添加到参数之后,却遇到了System.NullReferenceException
异常,但是当我删除[frombody]并再次尝试时,一切都正常进行了
这是我的控制器:
public async Task<IActionResult> Register([FromBody] UserForRegisterDTO userForRegisterDTO)
{
//validate request
userForRegisterDTO.Username = userForRegisterDTO.Username.ToLower();
if(await _repo.UserExist(userForRegisterDTO.Username))
return BadRequest("Username is already taken");
}
DTO:
namespace DatingApp.API.DTO
{
public class UserForRegisterDTO
{
public string Username { get; set; }
public string Password { get; set; }
}
}
错误:
失败: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware 1 执行请求时发生未处理的异常。 System.NullReferenceException:对象引用未设置为实例 一个对象。 在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter() 在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext上下文) 在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(状态和下一个,范围和范围,对象和状态,布尔值和已完成) 在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync() 在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync() 在Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext) 在Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext) 在Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.Invoke(HttpContext上下文) 在Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext上下文)
有些奇怪的事情发生了。我通过使用“ dotnet watch run”代替“ dotnet run”解决了这个问题。