【发布时间】:2016-04-23 20:47:25
【问题描述】:
我有一个带有 url 的 MVC 控制器,它有一个带有方括号的参数绑定,例如
public Product GetProduct([Bind(Prefix = "product[productid]") int id)
它曾经与请求 url 一起工作,例如
http://localhost:8080/Product/GetProduct?product[productid] = 1001。
我能够在 MVC 控制器中将 id 的值设为 1001。不幸的是,我应该将其更改为 web api 控制器,并且我有这样定义的 api 控制器方法
public Task<Product> GetProduct([FromUri(Name=product[productid])] int id)
为此,我得到了具有相同请求 url 的 404 响应。 [FromUrl] 与不带大括号的参数名称一起使用时
定义为
public Task<Product> GetProduct([FromUri(Name=productid)] int id)
和像
这样的网址http://localhost:8080/Product/GetProduct?productid = 1001
除了用大括号解析请求 url 并获取值之外,是否有任何解决方法。
【问题讨论】:
-
根据this answer,url无效,必须转义。
-
这不是关于处理参数化数组,它只是关于 url 格式。 MVC 控制器可以很好地使用大括号,而 WebApi 控制器则不能。可能是我没有正确理解它..我应该修复哪个部分.. URL 或控制器?
标签: asp.net-web-api2