在asp.net web api中有两个参数的方法

Bar*_*art 25 asp.net-web-api

如何使用ASP.NET Web Api创建具有两个参数的方法?

所以我可以像localhost/controller/param1/param2一样调用它

Nad*_*tch 56

您还可以在查询字符串中使用特定的参数名称调用url:

/api/actions?param1=5&param2=1/1/2000
Run Code Online (Sandbox Code Playgroud)

那么控制器方法将是:

GetByParams(int param1, DateTime param2)
Run Code Online (Sandbox Code Playgroud)

  • 这是更好的答案.接受的答案有效,但URL没有多大意义./ id/name对于URL来说是这样的:http://www.mysite/api/DoStuff/12345/Vince.这没有多大意义.像"Vince"一样是"12345"类别中的一些项目.http://www.mysite/api/users/Vince更有意义或http://www.mysite/api/users?name = Vince&id = 12345 (5认同)

Den*_*rev 6

只需在global.asax中更改或添加路由即可

routes.MapHttpRoute(name: "DefaultApi1", routeTemplate: "api/{controller}/{id}/{name}", Defaults: new{} );
Run Code Online (Sandbox Code Playgroud)


Moe*_*oes 6

我认为最简单的方法就是简单地使用AttributeRouting

[Route("api/YOURCONTROLLER/{paramOne}/{paramTwo}")]
public string Get(int paramOne, int paramTwo) {
    return "The [Route] with multiple params worked";
}
Run Code Online (Sandbox Code Playgroud)

{}名称必须符合您的参数。

ASP.NET Web API 2中的属性路由