c# - Asp Net MVC Web Api、操作名称或路由

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

有了方法/ 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# - Asp Net MVC Web Api、操作名称或路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49056920/

相关文章:

c# - 不支持 URL 格式

c# - 在 httppost 之后关闭模式窗口

c# - ASP.NET Core 中的循环依赖

c# - 使用基于 iTextSharp 的模板创建 PDF 文档

c# - 关于 ExtensionAttribute 的奇怪警告

jquery - 如何使用ajax调用将对象传递给 Controller

jquery - 在asp.net mvc中使用jQuery datepicker的问题

c# - 如何使用路由属性绑定(bind) WebAPI GET 请求中的请求模型?

.net - JSON 序列化 - 删除空键

c# - 使用 WinForms 扩展旧版 C++ Windows 应用程序