C# 除值控制器外,无法访问WebApi控制器
我有一个webApi用户控制器和一个名为的方法寄存器。路由是通过路由属性完成的。最初它是接受POST请求的,我更改它只是为了看看它是否被击中。我感兴趣的注册方法是:C# 除值控制器外,无法访问WebApi控制器,c#,asp.net-core,asp.net-core-routing,C#,Asp.net Core,Asp.net Core Routing,我有一个webApi用户控制器和一个名为的方法寄存器。路由是通过路由属性完成的。最初它是接受POST请求的,我更改它只是为了看看它是否被击中。我感兴趣的注册方法是: [Authorize] [ApiController] [Route("api/[controller]/[action]")] public class UsersController : ControllerBase { [AllowAnonymous] //[HttpGet("register")]
[Authorize]
[ApiController]
[Route("api/[controller]/[action]")]
public class UsersController : ControllerBase
{
[AllowAnonymous]
//[HttpGet("register")]
public IActionResult Register()
{
// map dto to entity
UserDto userDto = null;
var user = _mapper.Map<User>(userDto);
try
{
// save
_userService.Create(user, userDto.Password);
return Ok();
}
catch (AppException ex)
{
// return error message if there was an exception
return BadRequest(new { message = ex.Message });
}
}
}
[授权]
[ApiController]
[路由(“api/[controller]/[action]”)
公共类UsersController:ControllerBase
{
[异名]
//[HttpGet(“寄存器”)]
公共IActionResult寄存器()
{
//将数据映射到实体
UserDto UserDto=null;
var user=\u mapper.Map(userDto);
尝试
{
//拯救
_创建(用户,userDto.Password);
返回Ok();
}
捕获(外观例外)
{
//如果出现异常,则返回错误消息
返回BadRequest(新的{message=ex.message});
}
}
}
我尝试了[Route(“api/[controller]/[action]”)和[Route(“api/[controller]”)和请求对应的,但都没有成功
相同的路由属性组合适用于默认的webApi ValueController
我哪里做错了,哪里做错了?您不能在直接路由中使用参数
控制器
。请尝试以下路线:
[路由(“api/users/{action}”)]
这应该是可行的。您仍然需要在操作中包含
Http{Verb}
,以便它映射到相应的操作Http Verb请求
[Authorize]
[ApiController]
[Route("api/[controller]/[action]")]
public class UsersController : ControllerBase {
//GET api/users/register
[AllowAnonymous]
[HttpGet]
public IActionResult Register() {
//...
}
//POST api/users/register
[AllowAnonymous]
[HttpPost]
public IActionResult Register([FromBody]RegisterModel model) {
//...
}
}
ReferenceReference[HttpPost]包含在寄存器方法的顶部。根据您的提问,您声明您正在通过更改以获取来测试它。在示例中还注释了一个HttpGet。这个答案正好与原始问题中的答案相符。如果你想发帖,同样的方法也可以。只需替换必要的属性