Asp.net mvc 4 Asp.NETWebAPI操作字符串路由映射

Asp.net mvc 4 Asp.NETWebAPI操作字符串路由映射,asp.net-mvc-4,Asp.net Mvc 4,我有一个名为customer的控件和一个用于GetAllCustomers的操作方法,它接收单个字符串输入参数作为名字。问题是我希望url是这样的 MyAPI/Customer/MyFirstName 但是上面提到的URL不适用于我,而是如下所示 MyAPI/Customer?firstname=MyFirstName 如何使用ApplicationRouting(nuget package)使其像第一个url一样工作?我已经为操作方法配置了属性路由,如下所示 [GET("Customer/

我有一个名为customer的控件和一个用于GetAllCustomers的操作方法,它接收单个字符串输入参数作为名字。问题是我希望url是这样的

MyAPI/Customer/MyFirstName
但是上面提到的URL不适用于我,而是如下所示

MyAPI/Customer?firstname=MyFirstName
如何使用ApplicationRouting(nuget package)使其像第一个url一样工作?我已经为操作方法配置了属性路由,如下所示

[GET("Customer/{firstname}")]
public List<Customer> GetAllCustomersFirstname(String firstname)
{
//code goes here
}
[GET(“Customer/{firstname}”)]
公共列表GetAllCustomerFirstName(字符串firstname)
{
//代码在这里
}
编辑 这是我试图实现的参考,但在ApiController中我没有实现


在AppStart文件夹中打开ApiConfig。您需要为该特定操作添加路由。我认为,对于route,您需要的不仅仅是您在那里展示的内容,因为您必须告诉它要调用哪些操作以及允许使用哪些方法。例如

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

我使用的是属性路由,我不认为需要添加apiconfig条目,还是我错了?您的标签上写着MVC4,您是否使用第三方包进行属性路由?我使用的是AttributeRouting nugetAh。要是知道这一点就好了。我没有这方面的任何经验,我不喜欢设置这样的路线。我不喜欢有额外的代码在我面前。如果您找不到答案,请尝试这种开箱即用的方法。