0

確定這樣一個典型的路徑可能是這樣的:是否可以在路線中進行多部分動作?

{controller}/{action}/{id} 

的問題是,我們現有的端點像這樣

{controller}/Somesortofgrouping/{action} 

在例子,這是我們的付款控制器。我們可能有以下端點:

payment/credit/sale 
payment/credit/refund 
payment/cash/sale 

而且方法名是,分別爲:

CreditSale(); 
CreditRefund(); 
CashSale(); 

因此而不必每個端點添加到WebApiConfig,以保持我們的會議,是有任何方式使用模板來處理這種情況?

回答

2

而不是增加每個端點的配置,你可以考慮使用優秀AttributeRouting包裝和使用屬性控制器/行爲本身配置路由。

與MVC相比,某些限制適用於Web API(如文檔中所列)。

使用這個庫後,很難想象回去保持一個單獨的路由配置。

+0

確實,但它似乎不允許我在方法uri前加上。所以方法是CreditRefund,但是uri是現金/退款。當我在屬性中添加一個uri時,它會中斷。 – Sinaesthetic

+0

你確定你正在使用鏈接庫嗎?你可以命名任何你喜歡的動作方法,並添加一個像這樣的屬性:'[GET(「payment/cash/refund」)]'(只要你得到它的工作,你可以'支付'出來,並添加它作爲控制器上的RoutePrefix屬性)。另請參閱http://attributerouting.net/#defining-routes – marapet

+0

上的示例。不太確定發生了什麼,其他一切似乎都正常工作,包括RoutePrefix – Sinaesthetic

相關問題