2015-08-18 39 views
0

這裏是我的WebAPI行動..如何從的WebAPI方法生成URL

public class AuthenticationController : ApiController 
{ 

    [Route("api/auth/login")] 
    [HttpPost] 
    public object Login([FromBody] LoginViewModel loginViewModel) 

    ... 

如何生成一個MVC視圖內的網址是什麼?

我已經試過這...

@Url.HttpRouteUrl("DefaultApi", new { controller = "Authentication", action= "Login" })" 

...但它說,DefaultApi不存在。

爲什麼該方法想要路由名稱路由參數?

他們是如何設法使路由比普通MVC更復雜的?

什麼樣的web框架讓請求一個網頁/ API方法/ web服務的事情變得困難?它的荒謬。

回答

1

問題是因爲您使用attibute路由,所以你需要聲明與屬性路由的路由的名稱,比如:

[Route("api/auth/login", Name = "RouteName")] 

而當你使用@ Url.HttpRouteUrl

@Url.HttpRouteUrl("RouteName", new { controller = "Authentication", action= "Login" })"