0

我正在尝试将值传递给 Web Api 中的控制器/操作,但它没有找到它。

我的路线图:

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

我的 API 控制器:

    [HttpGet]
    public string MyThing()
    {
        return "thing";
    }

    [HttpGet]
    public string MyStuff(int myid)
    {
        return "something " + myid;
    }

我通过 RestSharp 进行的 REST 通话:

var request = new RestRequest { Resource = "api/values/MyStuff/555", Method = Method.GET };

如果我称它为MyThing()有效。似乎问题在于传递 id 值。

4

2 回答 2

6

将参数名称从“myid”修改为“id”

[HttpGet]
public string MyStuff(int **id**)
于 2013-05-02T22:17:20.077 回答
0

解决了。

我发现我必须将参数添加为查询字符串,而不是 /path 值。

api/values/MyStuff?myid=555

代替

api/values/MyStuff/555
于 2013-05-02T22:42:34.207 回答