【问题标题】:Is it possible to have multi part actions in the route?路线中是否可以有多部分动作?
【发布时间】:2013-01-17 08:46:09
【问题描述】:

好的,典型的路线可能如下所示:

{controller}/{action}/{id}

问题是我们现有的端点看起来像这样

{controller}/Somesortofgrouping/{action}

我们的支付控制器就是一个例子。我们可能有以下端点:

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

方法名称分别是:

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

因此,不必将每个端点添加到 WebApiConfig 以保持我们的约定,有没有办法使用模板来处理这种情况?

【问题讨论】:

    标签: .net asp.net-mvc-4 asp.net-web-api asp.net-web-api-routing


    【解决方案1】:

    您可以考虑使用出色的 AttributeRouting 包和使用属性在控制器/操作本身上配置路由,而不是将每个端点添加到配置中。。 p>

    与 MVC 相比,一些限制适用于 Web API(如文档中所列)。

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

    【讨论】:

    • 确实如此,但它似乎不允许我为方法 uri 添加前缀。所以方法是CreditRefund,但uri是现金/退款。我将 / 添加到属性中的 uri 的那一刻,它会中断。
    • 您确定您使用的是链接库吗?您可以将操作方法​​命名为您喜欢的任何名称,并添加如下属性:[GET("payment/cash/refund")](一旦您开始工作,您可以将payment 取出并添加为控制器上的RoutePrefix 属性) .另请参阅attributerouting.net/#defining-routes 上的示例
    • 我绝对是。不太清楚发生了什么,其他一切似乎都工作正常,包括 RoutePrefix
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多