gpt4 book ai didi

c# - 如何在 Web API 2 Controller 中放置多个 GET 方法?

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:49 25 4
gpt4 key购买 nike

我正在做一个 Web API 2 应用程序,我有一个名为 NCT_ProcessSettings 的 Controller ,并且我已经有两个 GET 方法,如下所示。

1. public IEnumerable<Process_Settings> Get()
2. public HttpResponseMessage Get(int id)

现在我想要第三个,如下所示(与第一个相同,但在内部我将编写不同的逻辑)。

3. public IEnumerable<Process_Settings> Get() //Compiler will confuse which to pick?

我试过如下。

[HttpGet]
[Route("GetGlobalSettings")]
public IEnumerable<NCT_Process_Settings> GetGlobalSettings()
{
return entityObject.NCT_Process_Settings.Where(c => c.project_id == 0).ToList();
}

下面是我调用 api 的 angularcode。

 var url = '/api/NCT_ProcessSettings/GetGlobalSettings';

我可以知道如何解决这个问题吗?任何帮助将不胜感激?

最佳答案

在基于约定的路由之前在 WebApiConfig.cs 中启用属性路由。

config.MapHttpAttributeRoutes();

接下来更新 Controller 以使用路由属性。 (注意路由前缀)

[RoutePrefix("api/NCT_ProcessSettings")]
public class NCT_ProcessSettingsController : ApiController {

//GET api/NCT_ProcessSettings
[HttpGet]
[Route("")]
public IEnumerable<Process_Settings> Get() { ... }

//GET api/NCT_ProcessSettings/5
[HttpGet]
[Route("{id:int}")]
public HttpResponseMessage Get(int id) { ... }

//GET api/NCT_ProcessSettings/GetGlobalSettings
[HttpGet]
[Route("GetGlobalSettings")]
public IEnumerable<NCT_Process_Settings> GetGlobalSettings() { ... }

}

在此处阅读更多文档 Attribute Routing in ASP.NET Web API 2

关于c# - 如何在 Web API 2 Controller 中放置多个 GET 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42158939/

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