.Net Core 2.0 Web API 控制器不工作并收到 404
.Net Core 2.0 Web API controller not working and getting 404
我有一件非常非常奇怪的事情。我有 2 个控制器。 UploadController
和 AccountController
。他们都在工作,现在当我尝试 AccountController
它给出错误 404。我不明白。
这是我的 AccountController
的样子:
namespace CoreAngular.Controllers
{
//[Authorize]
[Produces("application/json")]
[Route("api/account")]
public class AccountController : Controller
{
private IRepository repository;
public AccountController(IDatabaseClient<DocumentClient> client)
: this ( new UserRepository(client))
{
}
public AccountController(IRepository repository)
{
this.repository = repository;
}
[HttpGet]
public async Task<ActionResult> Get(string id)
{
var start = DateTime.Now.TimeOfDay;
if (string.IsNullOrEmpty(id))
{
return BadRequest();
}
var user = await repository.GetAsync(id);
if (user == null)
{
return NotFound();
}
var userDTO = new UserGetDTO()
{
image = Convert.ToBase64String(user.image.image),
id = user.id,
time = DateTime.Now.Subtract(start).Millisecond
};
return Ok(userDTO);
}......
我在这里错过了什么吗?我知道我已经退出 [Authorize]
,但我只是想尝试连接。
您应该在 HttpGet
属性中指定路由模板:
[HttpGet("{id}")]
public async Task<ActionResult> Get(string id)
{
// ...
}
我有一件非常非常奇怪的事情。我有 2 个控制器。 UploadController
和 AccountController
。他们都在工作,现在当我尝试 AccountController
它给出错误 404。我不明白。
这是我的 AccountController
的样子:
namespace CoreAngular.Controllers
{
//[Authorize]
[Produces("application/json")]
[Route("api/account")]
public class AccountController : Controller
{
private IRepository repository;
public AccountController(IDatabaseClient<DocumentClient> client)
: this ( new UserRepository(client))
{
}
public AccountController(IRepository repository)
{
this.repository = repository;
}
[HttpGet]
public async Task<ActionResult> Get(string id)
{
var start = DateTime.Now.TimeOfDay;
if (string.IsNullOrEmpty(id))
{
return BadRequest();
}
var user = await repository.GetAsync(id);
if (user == null)
{
return NotFound();
}
var userDTO = new UserGetDTO()
{
image = Convert.ToBase64String(user.image.image),
id = user.id,
time = DateTime.Now.Subtract(start).Millisecond
};
return Ok(userDTO);
}......
我在这里错过了什么吗?我知道我已经退出 [Authorize]
,但我只是想尝试连接。
您应该在 HttpGet
属性中指定路由模板:
[HttpGet("{id}")]
public async Task<ActionResult> Get(string id)
{
// ...
}