使用当前方法,我无法从以下查询字符串获得正确的结果:/ api / data?name = STORM%202006-1%20A2&price_type = cvr 有没有更好的方法来使用linq查询实现此过滤器。 如果是这样,将非常感谢任何示例。 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我很可能会设置错误。 但是我的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.