2013-02-20 14 views
2

有沒有一種方法來創建一個喜歡從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。如何從ApiController創建MVC動作的url?

任何幫助將不勝感激。謝謝。

+0

http://stackoverflow.com/questions/9502306/how-to-create-asp-net-web-api-url – 2013-02-20 22:32:41

+0

嗯,不知道如果我失去了一些東西,但你發送的鏈接是從MVC內部路由到API網址。我想要另一種方式,從API控制器路由到MVC URL。 – Will 2013-02-20 23:42:57

+0

請參閱下面的答案。 – 2013-02-21 00:00:22

回答

5

您可以使用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」的url值。它看起來像你可能需要預先安排域名,這應該是微不足道的找到。

+0

謝謝,工作。它第一次不適合我,因爲我沒有提供所有的參數。再次感謝。 – Will 2013-02-26 02:54:20

+0

@將其標記爲答案。 – Ulises 2013-02-28 00:18:03

+0

完成!對不起,作爲一個noob! – Will 2013-02-28 05:44:52