c# MVC中的两个GET函数
本文关键字:两个 GET 函数 MVC | 更新日期: 2023-09-27 18:09:45
public IEnumerable<Employee> GetEmployees()
{
//code and return
}
public Employee GetSingleEmployee(int Id)
{
//code and return
}
这是我现在拥有的。我试图使应用程序调用第一个函数与获取调用api/雇员和第二个与获取调用api/雇员/(ID号)例如api/雇员/75。get调用总是指向第一个。怎么解呢?
这是我的路由:
namespace EmployeeApp
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { action = "Index", id=UrlParameter.Optional }
);
}
}
}
使用类似
的注释[HttpGet]
[Route("employee")]
public IEnumerable<Employee> GetEmployees()
{
//code and return
}
[HttpGet]
[Route("employee/{Id}")]
public Employee GetSingleEmployee(int Id)
{
//code and return
}
在你上面的类RoutePrefix到
[RoutePrefix("api")]
正如其他人在没有看到路由的情况下所说的那样,可能很难猜测,但假设它是这样的:
routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
只要方法参数是小写的,可选的id
参数就可以工作。
如果你想使用这个动作作为路由的一部分,那么使用this,把它放在默认路由的上面:
routes.MapHttpRoute(
name: "Api By Action",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);