【发布时间】:2018-07-23 13:18:23
【问题描述】:
我制作了一个 asp.net core web api 并实现了一些注册用户的逻辑。 但问题是,每当我从邮递员那里调用控制器时,它都会给我 500 内部服务器错误。我还实现了一个简单的 IActionResult 来返回欢迎消息,这也不起作用。这是我的代码。
[ApiController]
[Route("api/[controller]")]
public class AuthController : Controller
{
private readonly IAuthRepository _repo;
public AuthController(IAuthRepository repo)
{
_repo = repo;
}
[HttpPost("register")]
public async Task<IActionResult> Register([FromBody]CreateUserDTO createUserDto)
{
createUserDto.Username=createUserDto.Username.ToLower();
if(await _repo.UserExists(createUserDto.Username))
return BadRequest("User With This User Name Already Exists");
var userToCreate=new User
{
UserName=createUserDto.Username
};
var createdUser=await _repo.Register(userToCreate,createUserDto.Password);
return Ok("user registered");
}
[HttpGet]
public IActionResult Get()
{
var message="welcome message";
return Ok(message);
}
}
期待很快收到您的来信。 谢谢
【问题讨论】:
-
这意味着您的代码正在崩溃。设置断点,看看发生了什么。
-
Hy Shyju,我正在使用 vscode,我也尝试过这个断点。但是当我从邮递员那里发起呼叫时,控制权并没有发生。我有一个非常简单的值控制器,效果很好。
-
在您的操作中实现日志记录并使用 try/catch 是一种很好的做法。
-
你在构造函数中放了断点吗?如果您是 IOC 没有正确传递 repo,它会在代码进入 Get 操作之前给您一个硬错误
-
嗨,马克·菲茨帕特里克,感谢您的帮助。是的,问题出在我的 AuthRepository 的构造函数上。我忘记将 public 修饰符赋予构造函数。但现在一切都很好并且工作正常。
标签: asp.net-mvc asp.net-web-api asp.net-core