如何在 Web API2 控制器中放置多个 GET 方法?
How to put multiple GET methods in Web API2 controller?
我正在做一个 Web API 2 应用程序,我有一个名为 NCT_ProcessSettings
的控制器,我已经有两个 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 的角度代码。
var url = '/api/NCT_ProcessSettings/GetGlobalSettings';
我可以知道如何解决这个问题吗?任何帮助将不胜感激?
在 convention-based 路由之前的 WebApiConfig.cs 中启用属性路由。
config.MapHttpAttributeRoutes();
接下来更新控制器以使用路由属性。 (注意路由前缀)
[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
使用的动作名称属性
[ActionName("Get")]
public IEnumerable<Process_Settings> Get1()//used any name here
{
}
我正在做一个 Web API 2 应用程序,我有一个名为 NCT_ProcessSettings
的控制器,我已经有两个 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 的角度代码。
var url = '/api/NCT_ProcessSettings/GetGlobalSettings';
我可以知道如何解决这个问题吗?任何帮助将不胜感激?
在 convention-based 路由之前的 WebApiConfig.cs 中启用属性路由。
config.MapHttpAttributeRoutes();
接下来更新控制器以使用路由属性。 (注意路由前缀)
[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
使用的动作名称属性
[ActionName("Get")]
public IEnumerable<Process_Settings> Get1()//used any name here
{
}