RedirectToAction和View()跳转及其参数
1、return RedirectToAction(),重定向到括号内的action控制的页面。可以传递参数。
比如:return RedirectToAction(_cViewPage, new {taskType=taskType }); //taskType为要传递的参数。
这种形式的传递参数,参数放在了ViewData里面,所以,前台获取参数的方式为:
<input id="taskType" name="taskType" type="hidden" value='@ViewData["taskType"]' />
或者
<input id="taskType" name="taskType" type="hidden" value='@Request.Params["taskType"]' />
2、return View() 跳转到当前页面。
若需要传递参数,可使用ViewData和ViewBag两种形式,只不过在前台获取参数的方式不同而已。
若使用ViewBag的方式传递,则:
后台:ViewBag.taskType = taskType;
前台:<input id="taskType" name="taskType" type="hidden" value='@ViewBag.taskType' />
Redirect和Return View 的区别
1、 Redirect是让浏览器重定向到新的地址;Return View是让服务器把指定的cshtml的内容运行渲染后给到浏览器。
2、 Redirect浏览器和服务器之间发生了两次交互;Return View浏览器和服务器之间发生了1次交互。
3、 Redirect由于是两次请求,所以第一次设置的ViewBag等这些信息,在第二次时取不到;而View则是在同一个请求中,所以ViewBag信息可以取到。
4、如果用Redirect,则由于是新的对Controller/Action的请求,所以对应的Action会被执行到。如果用View,则是直接拿某个View去显示,对应的Action是不执行的。
什么情况用View?
服务器端产生数据,想让一个View去显示的;
什么情况用Redirect?
让浏览器去访问另外一个页面的时候。
RedirectToAction和Return View的区别
RedirectToAction()是让客户端重定向,是一个新的Http请求,所以无法读取ViewBag中的内容;
Return View()是一次服务器一次处理中的转移。
Redirect和RedirectToAction的区别
RedirectToAction是从一个Action调到另一个Action,在后台做跳转。
Response.Redirect是给返回前台返回应答,前台根据应答的url进行跳转。
一个是后台,一个是前台。
MVC中RedirectToAction和Redirect
RedirectToAction可以从当前的action中调用其他的action(可以跨controller或跨域)结果
demo:
return RedirectToAction("wechatLogon", "account", new { name = vid, password = salt, automaticCheck = "on", ismobile = true });
Redirect有2种:
一种是System.Web.Mvc.Controller下的,重定向结果对象,在action中可直接调用Redirect
一种是System.Web.HttpResponseBase下的普通意义上的跳转,这个要注意
关于,RedirectToAction,说道它,就不得不提RedirectToRoute,用法差不多:
demo参考:http://www.cnblogs.com/xzitluyang/p/6042245.html
名称 | 说明 |
RedirectToAction(String) | 使用操作名称重定向到指定的操作。 |
RedirectToAction(String, Object) | 使用操作名称和路由值重定向到指定的操作。 |
RedirectToAction(String, String) | 使用操作名称和控制器名称重定向到指定的操作。 |
RedirectToAction(String, RouteValueDictionary) | 使用操作名称和路由字典重定向到指定的操作。 |
RedirectToAction(String, String, Object) | 使用操作名称、控制器名称和路由字典重定向到指定的操作。 |
RedirectToAction(String, String, RouteValueDictionary) | 使用操作名称、控制器名称和路由值重定向到指定的操作。 |
转载自:
https://blog.csdn.net/wangfangxu17/article/details/84795343
https://blog.csdn.net/a_lllll/article/details/89918249
https://blog.csdn.net/Joyhen/article/details/78009466