zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    GUI编程
    网络编程
    线程池详解_3
    多线程详解_2
    注解和反射_1
    多线程详解_1
    javaEE简要总结
    MarkDown使用教程简单介绍
    com.sun.xxx.utils不存在问题的解决
    解决npm install安装慢的问题
  • 原文地址:https://www.cnblogs.com/xdoudou/p/4351140.html
Copyright © 2011-2022 走看看