怎么在ASP。网络核心项目中实现一个重定向功能

  介绍

怎么在ASP。网络核心项目中实现一个重定向功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

使用RedirectResult

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

<李>

重定向返回Http状态码为302

<李>

之间返回Http状态码为301

<李>

RedirectPermanentPreserveMethod返回Http状态码为308

<李>

RedirectPreserveMethod返回Http状态码为307

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

重定向(“/Home/Index");   之间(“/Home/Index");   RedirectPermanentPreserveMethod (“/Home/Index");   RedirectPreserveMethod (“/Home/Index");

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

public  RedirectResult 指数()   {   ,return  new  RedirectResult (url:,“/Home/Index",,永久的,,真的,,preserveMethod:, true);   }

怎么在ASP。网络核心项目中实现一个重定向功能

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

public  RedirectResult 指数()   {   ,return 重定向(“https://google.com");   }

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

public  class  HomeController :控制器   {   }      public  abstract  class  Controller :, ControllerBase,, IActionFilter,, IFilterMetadata,, IAsyncActionFilter, IDisposable   {   }

使用RedirectToActionResult

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

<李>

RedirectToAction返回Http状态码为302

<李>

RedirectToActionPermanent返回Http状态码为301

<李>

RedirectToActionPermanentPreserveMethod返回Http状态码为308

<李>

RedirectToActionPreserveMethod返回Http状态码为307

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

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

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

public  RedirectToActionResult 指数()   {   ,return  RedirectToAction (actionName:“Privacy");   }

使用RedirectToRouteResult

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

<李>

RedirectToRoute返回Http状态码为302

<李>

RedirectToRoutePermanent返回Http状态码为301

<李>

RedirectToRoutePermanentPreserveMethod返回Http状态码为308

<李>

RedirectToRoutePreserveMethod返回Http状态码为307

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

public  RedirectToRouteResult 指数()   {   ,return  RedirectToRoute (“author");   }

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

var  routeValue =, new  RouteValueDictionary (new  {, action =,“调整前,,controller =,“Author"});   return  RedirectToRoute (routeValue);

使用LocalRedirectResult

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

<李>

LocalRedirect返回Http状态码为302

<李>

LocalRedirectPermanent返回Http状态码为301

<李>

LocalRedirectPermanentPreserveMethod返回Http状态码为308

怎么在ASP。网络核心项目中实现一个重定向功能