重定向

(作者:郭鑫 撰写时间:2019年4月3号)

重定向,顾名思义应该就是重新定位方向的意思。不过也的确是这个意思,看到名字就能够很好的理解了重定向的用法
重定向一般用于不希望用户在进行某个操作之前执行这个功能或者模块。例如判断用户有没有登陆,如果用户能任意打开一个项目的任意页面,那么这个项目的登陆页面就没有多大的意义了。同时如果能随便进出,那对项目的安全保证很低,也让不法分子有利可乘,造成重要数据流失。使用重定向这个功能便可以简单快速的解决这个问题。
每一个需要用户登陆验证的项目在登陆之后便会在session中存储有用户的信息,如用账号、密码、类型、用户ID之类的,从中选一个或多个作为验证的对象,如果存在该信息则说明用户已经登陆,可以进行下一步的操作,否则就重定向到登陆页面强制用户进行登陆操作。
例如以下例子:使用用户ID进行验证,具体解释代码中写有
在这里插入图片描述
重定向有两种方法:RedirectToAction和Redirect。
RedirectToAction和Redirect的区别在与作用不同。
RedirectToAction跳转的路径是该控制器下的路径,而和多情况下要进行跨控制器或跨区域进行重定向乃至需要重定向到其他项目,在这种情况下RedirectToAction就会报一个404的错误,也就是找不到页面。因为RedirectToAction的路径是需要在被重定向页面的控制器下面才行。
比如像这样,本次的例子就是一个跨区域的页面重定向,如以后出现此类错误可供参考
在这里插入图片描述
此时,RedirectToAction无法满足项目的要求,就要使用到另一个方法了——Redirect。
Redirect可以是任意路径,只要该路径是真实存在的就可以跳转到该页面,
例如:return Redirect(“http://www.baidu.com”); ,这行代码要是放到刚刚那个位置,如果用户没有登陆就直接进去该页面就会跳转到百度的主页面去。两个方法可以根据实际情况使用,效果更好。
对于RedirectToAction和Redirect的意思我从网上找了一些更专业的解释
在这里插入图片描述
来源:https://blog.csdn.net/wang_kill/article/details/62226750