AspNet MVC Web Api,ActionName或Route

Vic*_*ros 5 c# asp.net-mvc asp.net-web-api

具有Method / Action ObtainValue时,我想在调用该方法时为该方法分配一个不同的名称,所以我使用ActionName属性

    [ActionName("GetValueByID")]
    public string ObtainValue(int id)
    {
        return "value";
    }
Run Code Online (Sandbox Code Playgroud)

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

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

所以我的问题是,有区别吗?应该使用其中一个?如果我同时使用两者,那该怎么办?

abh*_*ave 5

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

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

简而言之,我们可以说,“ActionName”用于特定方法(资源),而另一方面我们使用“Route”来定义 URL-Pattern