AspNet MVC Web Api,ActionName或Route

时间:2018-03-01 19:02:42

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

使用方法/操作 ObtainValue ,我想在调用方法时为方法指定一个不同的名称,因此我使用 ActionName 属性

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

但我也可以使用 Route 属性,如下所示

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

所以我的问题是,是否存在差异?,应该使用其中一种吗?如果我同时使用两个,哪一个优先?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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