C# 在AspNetCore 2.2中ApiController的单个操作中使用FromRoute和FromQuery
使用ASP.NET Core 2.2,我有以下ApiController操作:C# 在AspNetCore 2.2中ApiController的单个操作中使用FromRoute和FromQuery,c#,asp.net-core,asp.net-core-mvc,asp.net-core-2.2,C#,Asp.net Core,Asp.net Core Mvc,Asp.net Core 2.2,使用ASP.NET Core 2.2,我有以下ApiController操作: [ApiController] public class PostController : Controller { [HttpGet("posts/{postId:int:min(1)}")] public async Task<IActionResult> GetByPostId([FromQuery]GetByPostIdRequest request) {
[ApiController]
public class PostController : Controller
{
[HttpGet("posts/{postId:int:min(1)}")]
public async Task<IActionResult> GetByPostId([FromQuery]GetByPostIdRequest request)
{
}
}
所有参数获取值的唯一方法是:
FromQuery
生效,这样我就不会出现错误不支持的媒体类型
FromRoute
放在请求类中以绑定PostId[ApiController]
public class PostController : Controller
{
[HttpGet("posts/{postId:int:min(1)}")]
public async Task<IActionResult> GetByPostId([FromRoute, FromQuery]GetByPostIdRequest request)
{
}
}
[ApiController]
公共类后控制器:控制器
{
[HttpGet(“posts/{postId:int:min(1)}”)]
公共异步任务GetByPostId([FromRoute,FromQuery]GetByPostRequest请求)
{
}
}
post ID的action方法中的另一个参数如何?我认为缓存最好使用url“posts/post ID”,然后使用参数来塑造响应。。。例如,“类别/类别ID/职位”也是如此。否?我是指动作方法中的另一个参数,例如,[FromQuery]GetByPostdRequest请求,[FromRoute]int postId
我明白了。。。关键是我的服务层只接受一类类型的请求,因此我需要在控制器内部向请求添加ID,这样就可以多做一步。您的服务层和UI层不是一回事,可能一开始就不应该使用相同的模型。关于post的action方法中的另一个参数如何ID?我认为缓存最好使用url“posts/postId”,然后使用参数来塑造响应。。。例如,“类别/类别ID/职位”也是如此。否?我是指动作方法中的另一个参数,例如,[FromQuery]GetByPostdRequest请求,[FromRoute]int postId
我明白了。。。关键是我的服务层只接受一类类型的请求,因此我需要在控制器内部向请求添加ID,这样就可以多做一步。您的服务层和UI层不是同一件事,可能不应该首先使用相同的模型。
[ApiController]
public class PostController : Controller
{
[HttpGet("posts/{postId:int:min(1)}")]
public async Task<IActionResult> GetByPostId([FromRoute, FromQuery]GetByPostIdRequest request)
{
}
}