华域联盟 .Net ASP.NET Core中如何实现重定向详解

ASP.NET Core中如何实现重定向详解

ASP.NET Core中如何实现重定向详解
 更新时间:2021年01月23日 08:40:46   作者:一线码农  

这篇文章主要给大家介绍了关于ASP.NET Core中如何实现重定向的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言
ASP.NET Core 是一个跨平台,开源的,轻量级的,模块化的,用于构建高性能的 web 开发框架, ASP.NET Core MVC 内置了多种方式将一个 request 请求跳转到指定的url,这篇文章我们就来讨论如何去实现。
理解 RedirectActionResult

ASP.NET Core MVC 中内置了几种 Redirect,比如说:RedirectResult, RedirectToActionResult, RedirectToRouteResult 和 LocalRedirectResult,这些类都继承于 ActionResult 并可给前端返回 Http 302,Http 301,Http 307 和 Http 308 这些状态码。
接下来的文章中我们就来看看如何使用这些类。
使用 RedirectResult

可以使用下面任何一个方法来返回 RedirectResult。

Redirect 返回 Http 状态码为 302
RedirectPermanent 返回 Http 状态码为 301
RedirectPermanentPreserveMethod 返回 Http 状态码为 308
RedirectPreserveMethod 返回 Http 状态码为 307

具体状态码代表什么意思,大家可查专业资料,下面的代码展示了如何使用这些方法。

Redirect("/Home/Index");
RedirectPermanent("/Home/Index");
RedirectPermanentPreserveMethod("/Home/Index");
RedirectPreserveMethod("/Home/Index");

如果你被这些方法搞蒙圈了,可以直接使用 RedirectResult ,然后通过 permanent 和 preserveMethod 两个参数去调节返回什么样的 Http 状态码即可, 代码如下所示:

public RedirectResult Index()
{
return new RedirectResult(url: "/Home/Index", permanent: true, preserveMethod: true);
}

值得注意的是,Redirect 方法也可以将请求导向一个指定的url地址上,比如下面这样:

public RedirectResult Index()
{
return Redirect("google.com");
}

接下来简单了解一下继承关系: HomeController 继承了 Controller ,后者又继承了 ControllerBase 并实现了 IActionFilter, IFilterMetadata, IAsyncActionFilter, 和 IDisposable 接口,如下代码所示:

public class HomeController : Controller
{
}

public abstract class Controller : ControllerBase, IActionFilter, IFilterMetadata, IAsyncActionFilter, IDisposable
{
}

使用 RedirectToActionResult

这个 ActionResult 用于将请求转向到指定的 Controller.Action ,如果没有指定 Controller 的话,自然就会跳转到当前 Controller 下的 Action,可使用下面罗列的方法将请求跳转到指定的 Action。

RedirectToAction 返回 Http 状态码为 302
RedirectToActionPermanent 返回 Http 状态码为 301
RedirectToActionPermanentPreserveMethod 返回 Http 状态码为 308
RedirectToActionPreserveMethod 返回 Http 状态码为 307

如果不想使用具体的方法,也可以直接使用父类的 RedirectToAction 方法。

public RedirectToActionResult Index()
{
return RedirectToAction(actionName: "Index", controllerName: "Home");
}

如果你只需要跳转到当前 Controller 下的某一个 Action,可以忽略 Controller 名字,如下代码所示:

public RedirectToActionResult Index()
{
return RedirectToAction(actionName: "Privacy");
}

使用 RedirectToRouteResult

这是另一种可将 请求跳转到指定 Action 的方式,你可以使用下面罗列的方法来实现跳转。

RedirectToRoute 返回 Http 状态码为 302
RedirectToRoutePermanent 返回 Http 状态码为 301
RedirectToRoutePermanentPreserveMethod 返回 Http 状态码为 308
RedirectToRoutePreserveMethod 返回 Http 状态码为 307

下面的代码片段展示了 如何使用 RedirectToRoute 。

public RedirectToRouteResult Index()
{
return RedirectToRoute("author");
}

也可以通过 RouteValueDictionary 来指定需要跳转的 Route 值,如下代码所示:

var routeValue = new RouteValueDictionary(new { action = "View", controller = "Author"});
return RedirectToRoute(routeValue);

使用 LocalRedirectResult

这个 ActionResult 只用于跳转到本地url ,也就意味着一旦你跳转到外部网站的url,肯定会抛出异常的。可以使用下面罗列的方法来实现跳转。

LocalRedirect 返回 Http 状态码为 302
LocalRedirectPermanent 返回 Http 状态码为 301
LocalRedirectPermanentPreserveMethod 返回 Http 状态码为 308
LocalRedirectPreserveMethod 返回 Http 状态码为 307

跳转到 Razor 页面

最后需要了解的一点是,你可以使用 RedirectToPage 方法将请求跳转到指定的 Razor 页面,返回 Http状态码 302,比如说:你有一个 Author Page,接下来用如下代码实现跳转。

public IActionResult RedirectToAuthorPage()
{
return RedirectToPage("Author");
}

译文链接: www.infoworld.com/art...
总结
到此这篇关于ASP.NET Core中如何实现重定向的文章就介绍到这了,更多相关ASP.NET Core实现重定向内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!

您可能感兴趣的文章:如何在Asp.Net Core中集成RefitASP.NET Core WebApi版本控制的实现ASP.NET Core对不同类型的用户进行区别限流详解详解如何在ASP.NET Core中编写高效的控制器详解如何在ASP.NET Core中使用IHttpClientFactoryASP.NET Core 使用Cookie验证身份的示例代码详解如何在ASP.NET Core Web API中以三种方式返回数据详解如何在ASP.NET Core中使用Route特性ASP.NET Core中实现全局异常拦截的完整步骤Asp.Net Core中创建多DbContext并迁移到数据库的步骤

asp.net
core
重定向

相关文章
.net MVC使用Session验证用户登录(4)这篇文章主要为大家详细介绍了.net MVC使用Session验证用户登录的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2018-04-04
asp.net(c#)获取内容第一张图片地址的函数C#获取文章类第一张图片的地址的函数(留着以后用),先说一下思路 2009-11-11
基于.Net的单点登录(SSO)实现解决方案SSO的解决方案很多,但搜索结果令人大失所望,大部分是相互转载,并且描述的也是走马观花,本文对此进行详细介绍,需要了解的朋友可以参考下 2012-11-11
Asp.net中的mail的发送Asp.net中的mail的发送... 2006-09-09
ASP.NET MVC下的四种验证编程方式[续篇]ASP.NET MVC支持四种服务端验证的编程方式(“手工验证”、“标注ValidationAttribute特性”、“让数据类型实现IValidatableObject或者IDataErrorInfo”),那么在ASP.NET MVC框架内部是如何提供针对这四种不同编程方式的支持的呢?本篇文章就来聊聊这背后的故事。 2016-12-12
aspx与ascx,ashx的用法总结这篇文章主要是对aspx与ascx,ashx的用法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 2013-12-12
Vistual Studio 2010 精品插件收集Vistual Studio 2010 精品插件收集,方便从事.net开发的朋友。 2011-10-10
xUnit 编写 ASP.NET Core 单元测试的方法这篇文章主要介绍了xUnit 编写 ASP.NET Core 单元测试的方法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下 2020-06-06
Asp.net TreeView来构建用户选择输入的方法 推荐选择优于输入,这是一般人的共识,面对繁多的数据,提供良好的选择界面,一方面增强用户的界面体验,一方面也提高了数据的准确性,更节省了用户的宝贵时间。 2009-12-12
Visual Studio实现xml文件使用app.config、web.config等的智能提这篇文章主要为大家详细介绍了Visual Studio中xml文件使用app.config、web.config等的智能提示方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2018-09-09

最新评论

本文由 华域联盟 原创撰写:华域联盟 » ASP.NET Core中如何实现重定向详解

转载请保留出处和原文链接:https://www.cnhackhy.com/4998.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者:

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部