3 c# asp.net-web-api asp.net-web-api2
在我的web api应用程序中,我想让客户端使用相同的路径发出请求,但是传递不同类型的参数.
例如:
public class MyController : ApiController
{
[HttpDelete]
public IHttpActionResult Delete(int id) {..}
[HttpDelete]
public IHttpActionResult Delete2(Guid id) {..}
[HttpDelete]
public IHttpActionResult Delete3(string id) {..}
}
Run Code Online (Sandbox Code Playgroud)
我希望每个方法的url类似,例如:
api/MyController/1
api/MyController/abc etc..
Run Code Online (Sandbox Code Playgroud)
这可能吗?我尝试了很多与ActionName属性和路由配置的组合,但似乎没有任何效果.
谢谢
您可以使用属性路由.例如:
[RoutePrefix("MyController")]
public class MyController : ApiController
{
[HttpDelete]
[Route("delete/{id:int}")]
public IHttpActionResult Delete(int id) {..}
[HttpDelete]
[Route("delete/{id:guid}")]
public IHttpActionResult Delete2(Guid id) {..}
[HttpDelete]
[Route("delete/{id:alpha}")]
public IHttpActionResult Delete3(string id) {..}
}
Run Code Online (Sandbox Code Playgroud)
如果您这样做,那么请求网址将是:
http://yoursever/mycontroller/delete/123
http://yoursever/mycontroller/delete/abc
http://yoursever/mycontroller/delete/91c74f8f-d981-4ee1-ba36-3e9416bba202
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |