首页新闻找找看学习计划

用 RedirectToAction调用和直接调用Action有什么区别呢?

0
悬赏园豆:5 [已解决问题] 解决于 2016-07-14 16:06

小弟在学MVC的时候 碰见了 RedirectToAction()方法

小弟也知道它的功能是重定向一个操作  但是为什么不直接调用Action就好了

为什么要用这个 不是很明白 还望大神科普下 谢谢了!!!

狂扁小朋友的主页 狂扁小朋友 | 初学一级 | 园豆:28
提问于:2016-07-14 03:24
< >
分享
最佳答案
0

直接调用Action,地址栏url不会变化,Redirect是跳转过去,地址栏url同时相应改变

收获园豆:5
烽火情怀 | 菜鸟二级 |园豆:373 | 2016-07-14 14:27

 你 这个我也测试过 有这么个效果 如果仅仅是这样 就.....

狂扁小朋友 | 园豆:28 (初学一级) | 2016-07-14 15:12

@狂扁小朋友: 我记得应该还有一点差别,如果你在Action A中直接调用Action B,而被调用的Action B没有手动指定viewName(比如直接return View() ),MVC将会去找你Action A的视图去渲染

烽火情怀 | 园豆:373 (菜鸟二级) | 2016-07-14 15:23

@烽火情怀: 所以最终显示的页面有可能不是你想要的

烽火情怀 | 园豆:373 (菜鸟二级) | 2016-07-14 15:24

@烽火情怀: 我查了MSDN 貌似看出区别了 

RedirectToRouteResult 会返回302状态码  代码这个访问重定向了

而直接调用会返回 200 它只是遵循了http协议的规范 

狂扁小朋友 | 园豆:28 (初学一级) | 2016-07-14 16:06
其他回答(2)
0

没怎么理解,你的疑问是为什么不能用类似View这样的方法来返回RedirectToAction操作后的结果吗? 

不管如何,看看两者的代码可能会好理解点

RedirectToRouteResult的代码和ViewResultBase的代码了

舞动字节 | 园豆:346 (菜鸟二级) | 2016-07-14 10:08
0

URL应该只显示相关内容。不相关内容就要通知浏览器去别的地方寻找。

RedirectToAction 会通知浏览器跳转到另一个URL。

 

 

长蘑菇星人 | 园豆:1820 (小虾三级) | 2016-07-14 15:10

我直接调用Action操作 一样能跳转啊

支持(0) 反对(0) 狂扁小朋友 | 园豆:28 (初学一级) | 2016-07-14 15:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册