【问题标题】:Web API two methods routingWeb API 两种方法路由
【发布时间】:2014-02-11 01:45:41
【问题描述】:

我正在运行Web API控制器,但只有一个方法传入。如何传入两个方法?

public List<activity2> GetAllCategories()
{

public List<String> DirSearch(string sDir)
{

这是我的 webapi 配置中的默认路由。

config.Routes.MapHttpRoute
(
     name: "DefaultApi",
     routeTemplate: "api/{controller}/{id}",
     defaults: new { id = RouteParameter.Optional }
);

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-4 asp.net-web-api


    【解决方案1】:

    您只需将参数sDir 更改为id,即可解决您的问题。

     [HttpGet]
     public List<activity2> GetAllCategories(){//}
    
     [HttpGet]
     public List<String> DirSearch(string id){//}
    

    然后保持默认路由,如:

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    

    更新

    如果您想使用Attribute Routing 来实现,请参见下文:

    安装 AttributeRouting.WebApi nuget 包:

     PM> Install-Package AttributeRouting.WebApi
    

    然后添加路由属性,如:

     [HttpGet]
     [Route("api/YourControllerName")]
     public List<activity2> GetAllCategories(){//}
    
     [HttpGet]
     [Route("api/YourControllerName/{sDir}")]
     public List<String> DirSearch(string sDir){//}
    

    有关属性路由的更多详细信息,请参阅Attribute Routing in Web API 2

    【讨论】:

    • 我使用的是 mvc4,呃抱歉,但是路由是红色下划线的?
    • 嗨@GimYong,我更新了我的答案,这是解决您问题的最简单方法。
    猜你喜欢
    • 2020-05-27
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    相关资源
    最近更新 更多