2014-01-08 61 views
0

我該如何禁止數字1)執行?我希望只有數字2)觸發Get動作,因爲只有這條路線是平靜的,只有映射到動作的路線才能觸發動作。至少這是我的初學者意見與休息和網絡API ...寧靜的GET路線不應該爲控制器工作

1)\ api \用戶觸發Get操作。

2)\ api \ users觸發Get操作。

[RoutePrefix("api/users")] 
public class UserController : ApiController 
{ 
    private readonly IUserService _userService; 
    public UserController(IUserService userService) 
    { 
     _userService = userService; 
    } 

    [Route("")] 
    public HttpResponseMessage Get() 
    { 
     var userDto = _userService.GetUsers(); 
     return Request.CreateResponse<IEnumerable<UserDTO>>(HttpStatusCode.OK, userDto); 
    } 
} 
+0

是你看到在你的配置默認MapHttpRoute上述動作當您執行'api/user'時,'Get()'會被選中? –

+0

@KiranChalla用我上面的代碼url/api/user仍然會觸發Get操作。 – Elisabeth

+0

你正在使用的'Microsoft.AspNet.WebApi.Core' nuget包的版本是什麼? –

回答

0

如果我猜,我會說,你仍然有一個使用常規的ASP.Net路由路由api/user到UserController中

+1

不錯的猜測......但理想情況下,這應該不起作用,因爲我們故意不允許傳統的路線,以達到屬性的行動或控制器...在這種情況下,我會預期'Get()'行動沒有被選中.. –