0

我称 api 为

$.getJSON("/api/accapi/1?p=5&min=10&max=20" , function (json) { 
   ...
});

和我的 ApiController

public class AccApiController : ApiController
{
    // GET api/accapi
    public string GetAccApi(string id)
    {
       return id;
    }
}

和我的路线

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

我没有查询字符串

{"1"}

少了什么东西 ?

4

1 回答 1

0

您返回的只是一个参数,id. 根据您的路线和查询字符串,您有四个参数:

  • id= 1
  • p= 5
  • min= 10
  • max= 20

但是您的控制器操作忽略了其中三个:

public string GetAccApi(string id)

如果您希望在控制器操作中使用其他查询字符串值,只需将它们添加为方法参数:

public string GetAccApi(string id, string p, string min, string max)

至于你的输出,你想看到什么?所有这些都作为一个字符串?你可以这样做:

return id + p + min + max

这将返回:

{"151020"}

我怀疑这就是你想要的。但是您必须更明确地说明您希望它返回什么。任何结构都可以。例如,一个自定义对象:

public SomeObject GetAccApi(string id, string p, string min, string max)
{
    return new SomeObject(id, p, min, max);
}

根据 的结构SomeObject,可以返回为:

{
  "ID":"1",
  "P":"5",
  "Min":"10",
  "Max":"20"
}

这至少更有条理。您要返回什么以及应以何种结构组织它取决于您。

于 2013-10-03T18:30:34.270 回答