.net 路线中是否可能有多个部件动作?

.net 路线中是否可能有多个部件动作?,.net,asp.net-mvc-4,asp.net-web-api,asp.net-web-api-routing,.net,Asp.net Mvc 4,Asp.net Web Api,Asp.net Web Api Routing,好的,典型的路线可能是这样的: {controller}/{action}/{id} 问题是我们现有的端点看起来像这样 {controller}/Somesortofgrouping/{action} 例如,我们的支付控制器。我们可能有以下端点: payment/credit/sale payment/credit/refund payment/cash/sale 方法名称分别为: CreditSale(); CreditRefund(); CashSale(); 因此,为了保持我们的约

好的,典型的路线可能是这样的:

{controller}/{action}/{id}
问题是我们现有的端点看起来像这样

{controller}/Somesortofgrouping/{action}
例如,我们的支付控制器。我们可能有以下端点:

payment/credit/sale
payment/credit/refund
payment/cash/sale
方法名称分别为:

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

因此,为了保持我们的约定,我们不必将每个端点添加到WebApiConfig,有没有办法使用模板来处理此场景

>将每一个端点添加到配置中,您可以考虑使用优秀的<强> > /强>包和<强>使用属性< /强> ./p>在控制器/动作本身上配置路由。 与MVC相比,一些限制适用于Web API(如文档中所列)


在使用了这个库之后,很难想象回去维护一个单独的路由配置。

的确如此,但它似乎不允许我为方法uri添加前缀。所以方法是CreditReturn,但uri是cash/Return。当我将/添加到属性中的uri时,它会断开。您确定要使用链接库吗?您可以随意命名该操作方法,并添加如下属性:
[GET(“payment/cash/return”)]
(一旦操作成功,您可以取出
payment
,并将其添加为控制器上的
RoutePrefix
属性)。另请参见“我肯定是”上的示例。不太清楚发生了什么,其他一切似乎都很好,包括RoutePrefix