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

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

但是我也可以使用Route属性,如下所示
    [Route("Api/Values/GetValueByID")]
    public string ObtainValue(int id)
    {
        return "value";
    }

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

最佳答案

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

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

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

关于c# - AspNet MVC Web Api,ActionName或Route,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49056920/

10-09 14:30