asp.net mvc框架之View、Redirect、RedirectToAction
Redirect:重定向
Redirect(域名后面的地址)
public ActionResult Index() { return Redirect("Test4/Test4"); }
RedirectToAction(string actionName,string controllerName):重定向,可以/controllerName/actionName拼接生成url,最终内部还是调用了Redirect
public ActionResult Test4() { return RedirectToAction("RedirectToActionTest"); }
View(同一个控制器中的Action方法):跳转到同一个控制器下的一个Action方法
public ActionResult RedirectToActionTest() { return View("ViewTest"); } public ActionResult ViewTest() { return View(); }
Redirect和View的区别:
1.Redirect是让浏览器重定向到新的地址;View是让服务器把指定的cshtml的内容运行渲染后给到浏览器。
2.Redirect浏览器和服务器之间发生了两次交互;View浏览器和服务器之间发生了一次交互。
3.Redirect由于是两次请求,所以第一次设置的ViewBag等这些信息,在第二次是取不到的;而View则是在同一个请求中,所以ViewBag信息可以取到。
4.如果用Redirect,则由于是对新的Controller/Action的请求,所以对应的Action会被执行到。如果用View,则是直接拿某个View去显示,对应的Action是不执行的。
什么情况下使用View?服务器端产生数据,想让一个View去显示的;
什么情况下使用Redirect?让浏览器去访问另一个界面的时候。