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


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

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

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'

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

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

其次,正如Athanasios Kataras所说,你也可以尝试使用Controller.Rirect(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>

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

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

最新更新