【问题标题】:Get request from controller action method doesn't work从控制器操作方法获取请求不起作用
【发布时间】:2014-02-21 17:39:59
【问题描述】:

我有一个带有链接的视图,该链接应该会触发获取请求:

<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 助手在视图中生成超链接时,一切正常。如果我使用第二种方法调用控制器中的操作方法,则永远不会释放请求:

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

我在控制器操作方法中缺少什么

【问题讨论】:

标签: c# asp.net-mvc http


【解决方案1】:

您似乎正在尝试使用 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 路由,您可能需要调整路由的名称。

【讨论】:

  • 是的,我认为这将是最好的解决方案。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-04
相关资源
最近更新 更多