如何从WebAPI方法生成URL

时间:2015-08-18 18:08:42

标签: asp.net-web-api

这是我的WebAPI行动..

public class AuthenticationController : ApiController
{

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

    ...

如何在MVC视图中生成URL?

我试过这个......

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

...但它说DefaultApi不存在。

为什么该方法需要路由名称​​和路由参数?

他们是如何设法使路由比常规MVC更复杂?

什么样的Web框架使请求网页/ API方法/ Web服务的事情变得困难?这太荒谬了。

1 个答案:

答案 0 :(得分:1)

问题是因为您正在使用属性路由,因此您需要使用属性Route声明路由的名称,例如:

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

当您使用 @ Url.HttpRouteUrl

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