请求带有参数的webapi get方法返回404

时间:2017-04-08 05:48:59

标签: c# asp.net asp.net-web-api routes

在WebApi上调用此方法时出现404错误。

在我的ApiController上,我有一个ArchiveTradingConfiguration方法。

public class TradingConfigurationController : ApiController
{
[AcceptVerbs("GET")]
    public bool ArchiveTradingConfiguration(string correlationId, string symbol)
    {
...
    }
}

这是我的startup.cs

public static class Startup
{
 public static void ConfigureApp(IAppBuilder appBuilder)
    {
    var config = new HttpConfiguration();
        config.EnableCors();

        config.Routes.MapHttpRoute(
        name: "ApiWithAction",
        routeTemplate: "api/{controller}/{action}/",
        defaults: null
        );

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

        config.Routes.MapHttpRoute(
        name: "ArchiveTradingConfiguration",
        routeTemplate: "api/{controller}/{correlationId}/{symbol}"
        );
     }
}

当我提出请求时,我使用:

var correlationId  = "SomeGuidAsString";
var symbol = "SomeStringValue"
var url = "api/TradingConfiguration/ArchiveTradingConfiguration/" + correlationId + "/" + symbol;

e.g。   http://localhost:8421/api/TradingConfiguration/ArchiveTradingConfiguration/034f7d92-dd02-46b3-9db2-11990ea5860c/SomeStringValue

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

现在正在运作。我做了2次更改。我不知道是否需要第一个。第二个是肯定的。

我的动作包含我的控制器的名称。将操作的名称更改为存档

我的路线配置我忘记添加/ {action} /

year    week    day  v1   v2
2001    1         1  46   *73
2001    1         2  60   9335
2001    1         3  *79   9318
2001    1         4  47   *361
2001    1         5  57    9373
2001    1         6  *77   9384
2001    1         7  72    9444
2001    2         1  75    *73
2001    2         2  74    63
2001    2         3  *79   377
2001    2         4  70    *361
2001    2         5  75    73
2001    2         6  *77   64
2001    2         7  76    57