2014-02-20 60 views
0

我有這是假設火GET請求鏈接視圖:獲得來自控制器的操作方法請求不起作用

<span style="margin-right: 20px;">@Html.Hyperlink("http://localhost:59536" + pr.Url, pr.Name)</span> 

<span style="margin-right: 20px;">@Html.ActionLink(pr.Name, "LoginExternal", new { url = pr.Url, state = pr.State })</span> 

當我使用自定義的HTML輔助生成視圖中的一切正常的超鏈接精細。如果我使用它調用了控制器get請求action方法從未發佈了第二個方法:

public async Task LoginExternal(string url, string state) 
    { 
     var client = new HttpClient { BaseAddress = new Uri(uri) }; 
     var response = await client.GetAsync(url); 
     response.EnsureSuccessStatusCode(); 
    } 

什麼我在控制器的操作方法缺少

+0

我想因爲你沒有返回ActionResult! –

+0

情況並非如此:http://stackoverflow.com/questions/2048643/asp-net-mvc-controller-actions-that-return-void – Bartosz

+0

2助手產生了什麼標記?他們彼此不同嗎? –

回答

2

看來,你正試圖生成一個鏈接一個使用Html.ActionLink的Web API方法。您可以使用Html.RouteLink並指定httproute=""值:

@Html.RouteLink(
    pr.Name, 
    "DefaultApi", 
    new { 
     httproute = "", 
     controller = "LoginExternal", 
     url = pr.Url, 
     state = pr.State 
    } 
) 

您可能需要調整路線的名稱,如果DefaultApi是不是您在Web API的路線。

+0

是的,我認爲這將是最好的解決方案。謝謝 – Bartosz

相關問題