Web Api路由没有传递值

时间:2013-05-02 22:13:01

标签: asp.net asp.net-mvc asp.net-mvc-4 asp.net-web-api

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

我的路线图:

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

我的ApiController:

    [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值。

2 个答案:

答案 0 :(得分:6)

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

[HttpGet]
public string MyStuff(int **id**)

答案 1 :(得分:0)

解决。

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

api/values/MyStuff?myid=555

而不是

api/values/MyStuff/555