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

相关问题