WebApi FromUri使用大括号绑定url参数

时间:2016-04-23 20:47:25

标签: asp.net-web-api2

我有一个带有url的MVC控制器,其中有一个参数绑定方括号,如

 public Product GetProduct([Bind(Prefix = "product[productid]") int id)

曾经使用过像

这样的请求网址

http://localhost:8080/Product/GetProduct?product[productid] = 1001

我能够在MVC控制器中将id的值设为1001。不幸的是我应该把它改成一个web api控制器,我有像这样定义的api控制器方法

public Task<Product> GetProduct([FromUri(Name=product[productid])] int id) 

我得到了具有相同请求网址的404响应。 [FromUrl]在没有大括号的情况下使用参数名称 定义如

public Task<Product> GetProduct([FromUri(Name=productid)] int id) 

和网址一样

http://localhost:8080/Product/GetProduct?productid = 1001

除了使用大括号解析请求网址并获取值之外,是否有任何解决方法。

1 个答案:

答案 0 :(得分:0)

您的网址是对的。您应该按照以下方式修复控制器:

public Task<Product> GetProduct([FromUri(Name=product.productid)] int id)

我真的不知道为什么会这样。