
[英]Using [FromUri] and [FromBody] simultaneously to bind a complex Web Api method parameter
[英]Web API [FromUri] Get Method Mapping
我很可能会设置错误。 但是我的Web api控制器中的get方法。
[HttpGet]
[Route("{productId:guid}", Name = nameof(GetProduct))]
[ResponseType(typeof(Product))]
public async Task<IHttpActionResult> GetProduct([FromUri]GetProductRequest request)
在请求中,我有Guid ProductId
public class GetProductRequest
{
public const string ProductIdRequired = nameof(ProductId) + " cannot be empty";
[Required(ErrorMessage = ProductIdRequired)]
public Guid ProductId { get; set; }
}
我希望请求网址看起来像localhost / v1 / product / 123
但它是localhost / v1 / product / {ProductId}?productId = 123&request.productId = 123'
如果我放弃路线{productId:guid},我会得到localhos / v1 / product?request.productId = 123',这也很奇怪。 不确定为什么要在URL中使用request.productId。
您在两个地方指示MVC解析输入值: [Route]
属性,以及控制器方法参数上的[FromUri]
属性。
尝试这个:
[FromUri]
。 Guid productId
,它与属性路由配置[Route({productId:guid})]
的值匹配。 然后,您应该看到它响应以下请求: localhost/v1/product/{productId}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.