【问题标题】:Using dash in Web API parameter在 Web API 参数中使用破折号
【发布时间】:2019-05-15 01:38:18
【问题描述】:

我有一个带有很多参数的 Web API 方法。这些参数用于在数据库中查找对象。在一种情况下,其中一个参数值中有一个破折号(即http://localhost/api/event/getdata/param-one/2/3/4/) 我在这里看到了关于在控制器或操作中处理破折号的其他问题和解决方案,甚至是参数名称,但不是参数值。我无法预测所有值,因此我需要能够处理此处带有破折号的任何参数。

[AcceptVerbs("POST")]
[Route("GetData/{arg0:alpha}/{arg1:int}/{arg2:int}/{arg3:int}/")]
public async Task<Dictionary<string, object>> GetData(string arg0, int arg1, int arg2, int arg3)
{
        ...
}

【问题讨论】:

    标签: c# url asp.net-web-api parameters hyphen


    【解决方案1】:

    这是因为第一个参数的 alpha 限制,它只允许字母字符。将其更改为 {arg0:length(1,50)} 即可解决问题。

    https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

    【讨论】:

      猜你喜欢
      • 2011-03-28
      • 2019-11-07
      • 1970-01-01
      • 2013-02-10
      • 2020-09-05
      • 2011-02-21
      • 2019-10-05
      • 2012-07-15
      • 2021-03-09
      相关资源
      最近更新 更多