Url.RouteUrl没有在MVC 5中获得API路由

时间:2013-11-10 13:58:15

标签: asp.net-mvc asp.net-web-api

我使用其模板创建了一个MVC 5站点,并添加了以下API控制器:

namespace MvcSite.Controllers {

  public class TestController : ApiController {

    [Route("test/send"), HttpGet]
    public String Send() {    
      return "SENT";
    }

  } // TestController
} // MvcSite.Controllers

当我访问“/ test / send”时,我按预期收到字符串“SENT”...

在Razor视图或Controller中,我需要获取发送操作的URL,所以我尝试了:

var url = Url.RouteUrl(new { controller = "Test", action = "Send", HttpRoute = true });

但是url是null ...我不知道为什么......

API路由工作正常,因此它位于路由表...

我错过了什么?

谢谢你, 米格尔

1 个答案:

答案 0 :(得分:6)

配置命名路由并使用HttpRouteUrl方法获取URL。

[Route("test/send", Name = "Send"), HttpGet]
public String Send() {    
  return "SENT";
}

获取如下网址:

var url = Url.HttpRouteUrl("Send", new {});