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

时间:2014-03-18 06:35:29

标签: asp.net-mvc-4

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

MyAPI/Customer/MyFirstName

但是上面提到的网址对我不起作用,而是按照以下方式工作

MyAPI/Customer?firstname=MyFirstName

如何使用ApplicationRouting(nuget包)使其像第一个URL一样工作?我已经为动作方法配置了attrbute路由,如下所示。

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

修改  这是我想要实现的参考,但在ApiController

中并没有发生这种情况

Attribute Routing Github

1 个答案:

答案 0 :(得分:0)

在AppStart文件夹中打开ApiConfig。您需要为该特定操作添加路由。我认为你需要的不仅仅是你在路线上展示的内容,因为你必须告诉它要调用哪个动作以及允许哪些方法。 E.g。

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