我有一个带有链接的视图,该链接可以触发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助手在视图中生成超链接时,一切正常。如果我使用第二个方法在控制器中调用action方法,则get request永远不会被释放:
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 :(得分: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路线,则可能需要调整路线名称。