微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想将应用程序重定向到ASP.NET Core中的外部URL

如何解决我想将应用程序重定向到ASP.NET Core中的外部URL

IHttpContextAccessor _httpContextAccessor;

public void GoToUrl()
{
    var authorizationRequest = "https://www.google.com/";                       
    _httpContextAccessor.HttpContext.Response.Redirect(authorizationRequest);
}

我想通过上述方法用户重定向到URL google.com。任何帮助将不胜感激。

解决方法

使用控制器重定向方法:https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.controller.redirect?redirectedfrom=MSDN&view=aspnet-mvc-5.2

public void GoToUrl()
{
var authorizationRequest = "https://www.google.com/";    
// assuming that you are in the controller.                    
return this.Redirect(authorizationRequest);
}
,
IHttpContextAccessor _httpContextAccessor;

public void GoToUrl()
{
    var authorizationRequest = "https://www.google.com/";                       
    _httpContextAccessor.HttpContext.Response.Redirect(authorizationRequest);
}

我想从上面将用户重定向到google.com网址 方法。任何帮助将不胜感激。

我已经使用您的代码创建了一个示例,它将显示以下错误:

InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Http.IHttpContextAccessor' while attempting to activate 'Test.Controllers.HomeController'

在ConfiguraServices方法(在startup.cs文件中)中注册IHttpContextAccessor后,您的代码运行良好,它将重定向到外部URL。请检查您的代码,然后尝试注册。

    public void ConfigureServices(IServiceCollection services)
    {
        services.TryAddSingleton<IHttpContextAccessor,HttpContextAccessor>();

第二,正如Athanasios Kataras所说,您还可以尝试使用Controller.Redirect(String)方法,尝试如下修改代码:

    //Try to use IActionResult,instead of `void`.
    public IActionResult GoToUrl()
    {
        var authorizationRequest = "https://www.google.com/";
        // assuming that you are in the controller.                    
        return this.Redirect(authorizationRequest);
    }

最后,如果上述方法仍然无法使用,则可以将外部url返回到客户端,然后使用window.location.href属性显示外部网页。

控制器中的代码:

    public IActionResult GoToUrl()
    {
        var authorizationRequest = "https://www.google.com/";                 
        return Json(authorizationRequest); 
    }

视图中的代码:

<input type="button" id="btnredirect" class="btn btn-info" value="Redirect" />
<script>
    $(function () {
        $("#btnredirect").click(function () {
            event.preventDefault(); 
            $.ajax({
                type: "Get",url: "/Home/GoToUrl",success: function (data) {
                    console.log(data)
                    window.location.href = data; 
                } 
            });

        });
    });
</script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。