2 回答

TA貢獻1845條經驗 獲得超8個贊
既然是REST風格了,就應該使用Url的方式來處理資源,如果需要傳遞參數就使用Service/Action/id這種形式來傳,這里id是參數名了,如:
[WebInvoke(Method = "PUT", RequestFormat = WebMessageFormat.Xml, UriTemplate = "{id}")]
void Update(Atom10ItemFormatter<SyndicationItem> item, int id);
這時你就可以使用http://localhost:8888/Svc/Action/1這種形式把1這個值作為id傳遞到服務中,在Update方法中,參數id的值就是這個1。
如果你非得使用?id=1這種形式,簡單點來說,把這個方法變通成:
[WebInvoke(Method = "PUT", RequestFormat = WebMessageFormat.Xml, UriTemplate = "?id={id}")]
void Update(Atom10ItemFormatter<SyndicationItem> item, int id);
這個方法貌似有點銼,只是我拍腦袋想出來的,登不得大雅之堂,呵呵。
第三種方法,使用Request["id"]來獲取Url中的參數也不是不可以啊,不過既然你型REST,就型的像點,使用第一種方法吧。
最后,我覺得WCF和MVC的UrlRouting結合后更爽了,那個ModelBinder沒得說,盡早轉過去吧。
- 2 回答
- 0 關注
- 470 瀏覽
添加回答
舉報