Asp.. Net Web API动作字符串路由映射



我有一个名为customer的控制器和一个GetAllCustomers的操作方法,该方法接收单个字符串输入参数FirstName。问题是,我希望url是

MyAPI/Customer/MyFirstName

但是上面所述的URL不适合我,而是像下面这样工作

MyAPI/Customer?firstname=MyFirstName

我怎么能使它工作像第一个url使用ApplicationRouting (nuget包)?我已经为action方法配置了属性路由,如下所示:

[GET("Customer/{firstname}")]
public List<Customer> GetAllCustomersFirstname(String firstname)
{
//code goes here
}

编辑这是我试图实现的参考,但它没有发生在我的ApiController

属性路由Github

打开AppStart文件夹中的ApiConfig。您需要为该特定操作添加路由。我认为你需要的不仅仅是你在那里为route展示的东西,因为你必须告诉它要调用哪个动作和允许什么方法。例如

config.Routes.MapHttpRoute(
      name: "yourRoute",
      routeTemplate: "api/{controller}/{firstname}",
      defaults: new { controller = "Customer", action = "GetAllCustomersFirstname" });

最新更新