2013-06-17 32 views
7

tôi đã Route này:Web API Routing - nhiều hành động đã được tìm thấy phù hợp với yêu cầu

 routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { id = UrlParameter.Optional } 
     ); 

Và Hoạt động này:

[System.Web.Http.HttpPost] 
    [System.Web.Http.ActionName("GetLoginSeed")] 
    public object GetLoginSeed() 

    [System.Web.Http.HttpPost] 
    [System.Web.Http.AllowAnonymous] 
    [System.Web.Http.ActionName("Authenticate")] 
    public object PerformLogin(JObject jr) 

Đây là yêu cầu cuối:

http://localhost:61971/api/Login/GetLoginSeed 

Tại sao tôi luôn tìm thấy nhiều hành động phù hợp với lỗi yêu cầu?

Trả lời

38

tôi đã Route này:

Những gì bạn đã cho thấy là một lộ trình cho các bộ điều khiển MVC. Tôi hy vọng bạn nhận ra rằng bộ điều khiển API Web là một điều hoàn toàn khác. Họ có các tuyến đường riêng được xác định trong số ~/App_Start/WebApiConfig.cs.

Vì vậy, hãy chắc chắn tat bạn đã bao gồm {action} thẻ trong định nghĩa đường API Web của bạn (mà tôi lặp lại một lần nữa không có gì để làm với các định nghĩa đường MVC của bạn):

config.Routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{action}" 
); 
+0

cảm ơn, nó giải quyết vấn đề của tôi –

+0

Tôi đã giải quyết được sự cố của mình. Cảm ơn bạn! –

+0

cũng làm việc cho tôi. cảm ơn –

Các vấn đề liên quan