如何从ApiController创建MVC动作的URL?

时间:2013-02-20 22:30:47

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

有没有办法创建一个从ApiController到MVC动作的URL?我看到了相反的例子,使用MVC的UrlHelper(http://blogs.msdn.com/b/roncain/archive/2012/07/17/using-the-asp-net-web-api-urlhelper.aspx)从MVC到达ApiController。

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:6)

您可以使用API​​控制器上的Url属性来查找到Web api或MVC控制器的路由。下面是创建默认项目模板MVC方法AccountController.Login(string returnURL)的链接的示例。

    public class SOExampleController : ApiController
{

    public SOExample GetSOExample()
    {
        var url = Url.Route("Default", new {controller = "Account", action = "Login", returnUrl = "hello"});
        return new SOExample{URL = url};
    }
}

public class SOExample
{
    public string URL {get;set;}
}

运行时,您会获得“/ Account / Login?returnUrl = hello”的网址值。看起来您可能需要预先添加域,这应该是很容易找到的。