gpt4 book ai didi

c# - 重载 Controller 方法的相同 url

转载 作者:行者123 更新时间:2023-11-30 13:55:03 27 4
gpt4 key购买 nike

在我的 web api 应用程序中,我想让客户端使用相同的路径发出请求,但传递不同类型的参数。

例如:

public class MyController : ApiController
{
[HttpDelete]
public IHttpActionResult Delete(int id) {..}

[HttpDelete]
public IHttpActionResult Delete2(Guid id) {..}

[HttpDelete]
public IHttpActionResult Delete3(string id) {..}

}

我希望每个方法的 url 都相似,例如:

api/MyController/1
api/MyController/abc etc..

这可能吗?我尝试了很多与 ActionName 属性和路由配置的组合,但似乎没有任何效果。

谢谢

最佳答案

您可以使用 attribute routing为了这。例如:

[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) {..}

}

如果你这样做,那么请求 url 将是:

http://yoursever/mycontroller/delete/123
http://yoursever/mycontroller/delete/abc
http://yoursever/mycontroller/delete/91c74f8f-d981-4ee1-ba36-3e9416bba202

关于c# - 重载 Controller 方法的相同 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436849/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com