【问题标题】:WebAPI Routing With Known and Dynamic Parameters具有已知和动态参数的 WebAPI 路由
【发布时间】:2016-12-07 02:29:48
【问题描述】:

我正在尝试在 WebAPI (C#) 中构建一个 get 操作,它将响应以下内容:

http://{host}/api/Callback/CompleteFlow/{MyId}/{dynamic parameters I have no control on}

例如:http://{host}/api/Callback/CompleteFlow/7?param1=abc&param2=def

还有:http://{host}/api/Callback/CompleteFlow/7

我创建了一个带有以下签名的动作:

[HttpGet]
public HttpResponseMessage CompleteFlow(int MyId, string requestParams)
{
}

并添加了具体的路由:

config.Routes.MapHttpRoute(
                name: "Callback",
                routeTemplate: "api/Callback/CompleteFlow/{MyId}/{*requestParams}",
                defaults: new { controller = "Callback", action = "CompleteFlow", requestParams = RouteParameter.Optional });

我正在获取 MyId 参数,但不是动态参数到操作中的 requestParams 参数中(我希望获取 requestParams=param1=abc&param2=def,但改为 null)。

我在这里错过了什么?

谢谢, 尼尔。

【问题讨论】:

    标签: asp.net-web-api dynamic get routing


    【解决方案1】:

    设法使用以下方法解决此问题:

    [HttpGet]
    public HttpResponseMessage CompleteFlow(int MyId)
    {
        var queryString = this.Request.GetQueryNameValuePairs();
    }
    
    config.Routes.MapHttpRoute(
                    name: "Callback",
                    routeTemplate: "api/Callback/CompleteFlow/{MyId},
                    defaults: new { controller = "Callback", action = "CompleteFlow" });
    

    希望它可以帮助某人:)

    谢谢, 尼尔。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-10
      • 2020-04-15
      • 2015-11-13
      • 2023-04-11
      • 2020-01-24
      • 2018-12-28
      • 1970-01-01
      • 2018-08-07
      相关资源
      最近更新 更多