2016-04-23 101 views
3

的WebAPI FromUri綁定URL參數我與URL的MVC控制器,其有一個參數與方括號中它結合等用大括號

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

其使用與該請求的URL的工作像

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

我可以在MVC控制器中獲得id的值爲1001。不幸的是,我應該改變這一個網頁API控制器和我有這樣定義的

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

爲此,我得到相同的請求URL 404響應API控制方法。該[FromUrl]作品有沒有括號參數名的時候喜歡

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

和像

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

的網址定義 對此有什麼解決辦法除了解析用大括號請求URL並獲得值。

+0

根據[這個答案](http://stackoverflow.com/questions/11490326/is-array-syntax-using-square-brackets-in-url-query-strings-valid)該網址是無效的,必須逃脫。 – Jasen

+0

這不是關於處理參數化數組,它只是關於url的格式。 MVC控制器可以正常工作,而WebApi控制器不會。可能是我沒有正確地得到它..我應該修復哪個部分.. URL或控制器? – Gerry

回答

0

您的網址是否正確。你應該通過以下方式修復控制器:

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

我真的不知道這是爲什麼。