使用字符串参数设置Route属性

时间:2017-07-07 12:16:35

标签: c# asp.net-web-api2

我试图创建一个带有String参数的自定义路由的Web API方法,但这在应用程序启动时似乎出错 - 所以我甚至不需要点击路径或者应用程序破解的方法。

// Pass String to TMS and Return an ID
[System.Web.Http.HttpGet]
[System.Web.Http.Route("api/job/import/{import:string}")]
public int TmsImport(string import)
{
    var TmsId = 0;
    if (import.Length > 0)
    {
        TmsId = 1;
    }
    return (TmsId);
}

应用程序在Global.asx中打破了以下方法:

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    GlobalConfiguration.Configure(WebApiConfig.Register);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

当我将int传递给方法时,这种方法也有效,但它似乎无法识别名称' string'在参数中。我确实在这里看到了类似问题的答案:call to web api with string parameter - 但我无法弄清楚答案的变化在哪里?如果它来自JS或路由配置的调用?

1 个答案:

答案 0 :(得分:1)

您只需要从:string删除{import:string}并尝试连接到

  

“API /作业/进口/ somestring”

MSDN article