2

我使用它的模板创建了一个 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 视图或控制器中,我需要获取发送操作的 URL,所以我尝试了:

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

但是 url 是空的......我不知道为什么......

API 路由工作正常,所以它在路由表中......

我错过了什么?

谢谢你,米格尔

4

1 回答 1

6

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

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

获取这样的 URL:

var url = Url.HttpRouteUrl("Send", new {});
于 2013-11-10T14:44:32.900 回答