如何解决我想将应用程序重定向到ASP.NET Core中的外部URL
IHttpContextAccessor _httpContextAccessor;
public void GoToUrl()
{
var authorizationRequest = "https://www.google.com/";
_httpContextAccessor.HttpContext.Response.Redirect(authorizationRequest);
}
我想通过上述方法将用户重定向到URL google.com
。任何帮助将不胜感激。
解决方法
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 举报,一经查实,本站将立刻删除。