MVC不用302跳转Action,内部跳转

原理,在一个Action里面return 另一个Action出去。

 public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index(int? id)
        {
           //必须要把Route里的Action改成最终的Action名字,否则造成读取CSHTML错误
            ControllerContext.RouteData.Values["Action"] = "TS";
            return TS(id);
            //如果不确定到哪个Action,可以使用反射的方式来跳转
            //return this.GetType().GetMethod("TS").Invoke(this,new object[]{id}) as ActionResult;

        }
        public ActionResult TS(int? id)
        {
            ViewBag.Id = id;
            return View();
        }
    }

如果连控制器也不确定,可以这么写

  ControllerContext.RouteData.Values["Action"] = "Index";
            ControllerContext.RouteData.Values["Controller"] = "Test";
            Type type = Assembly.GetExecutingAssembly().DefinedTypes.Where(t => t.Name == "TestController").FirstOrDefault();
            object obj = Assembly.GetExecutingAssembly().CreateInstance(type.FullName);
            return obj.GetType().GetMethod("Index").Invoke(obj, null) as ActionResult;
时间: 2024-10-12 20:08:25

MVC不用302跳转Action,内部跳转的相关文章

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法 在Action中方法的返回值都是字符串行,一般情况是返回某个JSP,如: return "xx":意思是返回到某个JSP页面上 如果想在此Action中跳转到另一个Action中怎样做呢? return "redirect://.do?" 例如: @RequestMapping(params = "action=delete") public String del

ASP.NET mvc下在Controller下action的跳转方式

在ASP.NET mvc下,action有多种挑战方式: return RedirectToAction("Index");//一个参数时在本Controller下 如果RedirectToAction(ActionName,ControllerName) //可以直接跳到别的Controller. return RedirectToRoute(new {controller="Home",action="Index"});//可跳到其他cont

【SSH进阶之路】一步步重构MVC实现Struts框架——封装业务逻辑和跳转路径(四)

目录: [SSH进阶之路]Struts基本原理 + 实现简单登录(二) [SSH进阶之路]一步步重构MVC实现Struts框架--从一个简单MVC开始(三) [SSH进阶之路]一步步重构MVC实现Struts框架--封装业务逻辑和跳转路径(四) [SSH进阶之路]一步步重构MVC实现Struts框架--彻底去掉逻辑判断(五) [SSH进阶之路]一步步重构MVC实现Struts框架--完善转向页面,大功告成(六) Struts的第二篇博客[SSH进阶之路]Struts基本原理 + 实现简单登录(二

frameset怎么框架内部跳转

版权声明:本文为博主原创文章,未经博主允许不得转载. 分帧 HTML 框架是划分窗口的技术 就是把一个窗口分隔成多个窗口 每个窗口显示不同的网页内容多用于后台 也叫做分帧 1.Frameset 注意 如果你在页面上写frameset 了那么就不能出现body 因为他们两个见面就打仗 <frameset></frameset> 常用属性: Cols  分列单位可以写像素也可以写百分比 之后除上面内容外还可以写*(*代表剩余所有) Rows 分行单位可以写像素也可以写百分比 之后除上面

服务器内部跳转

首先要知道服务器内不跳转有两种方法 1.相对路径 2.绝对路径 一.由.jsp跳到servlet中 相对路径: <a href = "servlet/TestServlet1">TestServlet1 Get方式请求</a> 绝对路径: <% String path = request.getContextPath(); %> <form action="<%=path %>/servlet/TestServlet2&q

asp.net MVC4在Action间跳转 RedirectToAction 传值参数问题

return RedirectToAction("Test", new { cw = cw, firstdirectoryid = firstdirectoryid }); 上式中cw是一个对象,按上式传递参数后,在Test中收不到对象cw,但firstdirectoryid可以接收到. RedirectToAction函数允许传递一系列的objects,但在实践中发现,这些所谓的objects,并不是真正的objects,调用者 若传递出object reference,接收者得到的

html---frameset怎么框架内部跳转——转自玉狐大神

分帧 HTML 框架是划分窗口的技术 就是把一个窗口分隔成多个窗口 每个窗口显示不同的网页内容多用于后台 也叫做分帧 1.Frameset 注意 如果你在页面上写frameset 了那么就不能出现body 因为他们两个见面就打仗 <frameset></frameset> 常用属性: Cols  分列单位可以写像素也可以写百分比 之后除上面内容外还可以写*(*代表剩余所有) Rows 分行单位可以写像素也可以写百分比 之后除上面内容外还可以写*(*代表剩余所有) Framebord

内部跳转(请求转发)和外部跳转(重定向)的区别?

总结归纳要点: 1.内部跳转的时候实际上是通过服务器端将请求转发到另外的页面或者servlet中,这个时候跳转到的目标页面或者servlet可以获取到请求对象, 也可以获取到请求中的属性和参数.而外部跳转的时候实际上是第一次请求后,服务器端向客户端发送了一个指令,让客户端再次请求了一次服务器端,这个时候服 务器第二次拿到的request对象已经不是第一次请求的request对象了,所以无法获取到第一次请求里的参数和属性. 2.内部跳转的url地址栏不会发生变化,外部跳转url则会发生变化. 3.

struts2 action 页面跳转

struts2 action 页面跳转 标签: actionstruts2redirect 2013-11-06 16:22 20148人阅读 评论(0) 收藏 举报 (1)type="dispatcher" 为默认,用于jsp页面跳转<result name="success">/index.jsp</result> 完整的写法为: <result name="success" type="dispatc