时间:2021-05-28
ASP.NET Core 是一个跨平台,开源的,轻量级的,模块化的,用于构建高性能的 web 开发框架, ASP.NET Core MVC 内置了多种方式将一个 request 请求跳转到指定的url,这篇文章我们就来讨论如何去实现。
ASP.NET Core MVC 中内置了几种 Redirect,比如说:RedirectResult, RedirectToActionResult, RedirectToRouteResult 和 LocalRedirectResult,这些类都继承于 ActionResult 并可给前端返回 Http 302,Http 301,Http 307 和 Http 308 这些状态码。
接下来的文章中我们就来看看如何使用这些类。
可以使用下面任何一个方法来返回 RedirectResult。
具体状态码代表什么意思,大家可查专业资料,下面的代码展示了如何使用这些方法。
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("https://google.com");}接下来简单了解一下继承关系: HomeController 继承了 Controller ,后者又继承了 ControllerBase 并实现了 IActionFilter, IFilterMetadata, IAsyncActionFilter, 和 IDisposable 接口,如下代码所示:
public class HomeController : Controller{}public abstract class Controller : ControllerBase, IActionFilter, IFilterMetadata, IAsyncActionFilter, IDisposable{}这个 ActionResult 用于将请求转向到指定的 Controller.Action ,如果没有指定 Controller 的话,自然就会跳转到当前 Controller 下的 Action,可使用下面罗列的方法将请求跳转到指定的 Action。
如果不想使用具体的方法,也可以直接使用父类的 RedirectToAction 方法。
public RedirectToActionResult Index(){ return RedirectToAction(actionName: "Index", controllerName: "Home");}如果你只需要跳转到当前 Controller 下的某一个 Action,可以忽略 Controller 名字,如下代码所示:
public RedirectToActionResult Index(){ return RedirectToAction(actionName: "Privacy");}这是另一种可将 请求跳转到指定 Action 的方式,你可以使用下面罗列的方法来实现跳转。
下面的代码片段展示了 如何使用 RedirectToRoute 。
public RedirectToRouteResult Index(){ return RedirectToRoute("author");}也可以通过 RouteValueDictionary 来指定需要跳转的 Route 值,如下代码所示:
var routeValue = new RouteValueDictionary(new { action = "View", controller = "Author"});return RedirectToRoute(routeValue);这个 ActionResult 只用于跳转到本地url ,也就意味着一旦你跳转到外部网站的url,肯定会抛出异常的。可以使用下面罗列的方法来实现跳转。
最后需要了解的一点是,你可以使用 RedirectToPage 方法将请求跳转到指定的 Razor 页面,返回 Http状态码 302,比如说:你有一个 Author Page,接下来用如下代码实现跳转。
public IActionResult RedirectToAuthorPage(){ return RedirectToPage("Author");}译文链接: https:///art...
到此这篇关于ASP.NET Core中如何实现重定向的文章就介绍到这了,更多相关ASP.NET Core实现重定向内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言作为.NET程序员,痛苦之一是自从ASP.NET诞生之日起直到最新的ASP.NETCore都无法直接实现跨站登录重定向(比如访问https://q.cnbl
本文实例讲述了Asp.Net实现404页面与301重定向的方法。分享给大家供大家参考。具体实现方法如下:从一种程度来讲301重定向与404页面没什么关系为什么我
问题如何在ASP.NETCore2.0中实现网址重定向?答案新建一个空项目,在Startup.cs文件中,配置RewriteOptions参数并添加网址重定向中
在asp.net中页面重定向:Server.Execute("m2.aspx");服务器保存此页转向前的数据后,使页面转向到m2.aspx执行,再返回本页继续执
详解Nginx301重定向的配置301重定向是很常见的需求,比如访问nowamagic.net,自动跳到www.nowamagic.net。或者倒过来,访问ww