【问题标题】:AspNet MVC Web Api, ActionName or RouteAspNet MVC Web Api、ActionName 或 Route
【发布时间】:2018-03-01 19:02:42
【问题描述】:

有了Method/ActionObtainValue,我想在调用的时候给方法分配一个不同的名字,所以我使用ActionName属性

    [ActionName("GetValueByID")]
    public string ObtainValue(int id)
    {
        return "value";
    }

但是我也可以使用Route属性,如下图

    [Route("Api/Values/GetValueByID")]
    public string ObtainValue(int id)
    {
        return "value";
    }

所以我的问题是,有区别吗?应该使用其中一个吗?如果我两者都用,那一个优先呢?

【问题讨论】:

标签: c# asp.net-mvc asp.net-web-api


【解决方案1】:

ActionName :是方法的操作(资源特定)名称。目的是为特定方法提供用户友好的名称,例如。 FetchEmployeeData 到 GetEmployee...您不能为带有“actionname”的前缀指定控制器名称

Route : 是为 URL 模式定义的完全限定 URL(更通用) ....它用于了解用户的完整资源路径...使用“Route”,您可以指定用“/”分隔的控制器名称..与在 routeconfig 中的 maproute 方法中指定完全限定的 URL 路由时相同

简单来说,我们可以说,“ActionName”用于特定的方法(资源),并且 另一边我们使用“Route”来定义URL-Pattern

【讨论】:

    【解决方案2】:

    您可以使用ActionName 属性覆盖API URL 中的方法名称,使用Route 属性覆盖整个API URL。

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 2021-02-13
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 2022-11-23
      • 2019-05-03
      • 2021-11-08
      相关资源
      最近更新 更多