在 ASP.NET CORE 中可以使用 Response.Redirect(url) 方法进行页面重定向。
页面重定向有两种不同的状态码:301 和 302 。其中:
- 301 重定向代表永久性转移(Permanently Moved)。
- 302 重定向代表暂时性转移(Temporarily Moved)。
301 永久性转移
- 301 响应是可以被缓存的。
- 301 表示旧的地址的资源已经被永久地被移除了(这个资源不可再访问了),搜索引擎在抓取新的内容的同时也将旧的网址交换为重定向之后的网址。
302 暂时性转移
- 302 响应不能被缓存,一般可以用在用户登录跳转到登录前界面。
- 302 表示旧的地址A的资源还在(仍然可以访问),这个重定向只是临时的从地址A跳转到了地址B,搜索引擎会抓取新的内容而保存旧的网址。
ASP.NET CORE 中的重定向
如果直接调用 Response.Redirect(url)
则会默认输出一个 302 重定向,要想得输出一个 301 重定向,可使用以下方法重载:
Response.Redirect(url,true);
如果是一个 ASP.NET MVC 项目,可以通过返回一个 RedirectResult
实现重定向:
public IActionResult Test() { return Redirect("https://www.coderbusy.com"); }
如果要实现 301 重定向,可以使用 RedirectPermanent
方法:
public IActionResult Test() { return RedirectPermanent("https://www.coderbusy.com"); }