ASP.Net MVC Action重定向跳出Controller和Area

转自  http://blog.csdn.net/honantic/article/details/51082957

 

1.重定向方法简介
[csharp] view plain copy print?
[HttpPost]  
public ActionResult StudentList( string StudName, string studName, DateTime BirthDay, FormCollection form, string controller,   
string Action, StudentModels student)  
{  
      //其中StudName为aspx页面中标签的name属性(StudName不区分大小写)  
      //其中BirthDay为页面中标签的name属性(类型可自己指定【需转换成功才可以】,这里为DateTime)同样BirthDay不区分大小写  
      //其中controller,Action为路由信息(controller,Action不区分大小写)  
      //FormCollection包含了post回来的信息 通过form[]来取值  
      //如果使用强类型绑定 可通过实体回传值 这里实体为StudentModels  
      //同样可以使用Request.Form[] Request.QueryString[] Request[] 来取值 不过此Request非WebForm中的Request    
这里的Request是RequestBase抽象类的实例 WebForm中Request是封装类 HttpRequest的实例  
           
          
      #region 到要经过执行controller里方法后 显示出页面。  
      //return RedirectToAction("Index");//可跳出本controller  
      //return RedirectToRoute(new {controller="Home",action="Index"});//可跳出本controller  
      //Response.Redirect("Index");//只能使用本controller下的方法名称。返回值为void  
      //return Redirect("Index");//只能使用本controller下的方法名称。  
      #endregion  
 
 
      #region 直接显示出对应的页面 不经过执行controller的方法。  
      //return View("Index");//非本方法  
      //return  View("~/Views/Home/Index.aspx");//这种方法是写全路径  
      #endregion  
      return View();  
}  


2.跳出Controller和Area
  在上面的代码中,使用RedirectToRoute(new { contoller="Home", action="Index" })方法可以跳出控制器,访问其他控制器的action,但是,如果是别的Area里面的控制器Action呢?能不能访问呢?答案是:可以。
  这样写就可以:RedirectToRoute(new { contoller="Home", action="Index" , area="MyArea"})。
3.传递参数
  如果要传递参数应该怎么写?
  方法一:
  假设目标Controller里面action参数列表为简单类型,例如:Index(stringname),那么上面的方法可以这样写:RedirectToRoute(new { controller="Home", action="Index", area="MyArea", name="Argo"})。但是这种方法貌似只能传递基本类型,对于自定义的Class或者Model,不能传递。
  方法二:
[csharp] view plain copy print?
通过TempData传递:  
//本action中代码</span>  
this.TempData["name"]="Argo";  
RedirectToRoute(new { contoller="Home", action="Index" , area="MyArea"});  
//目标action中代码</span>  
string name=TempData["name"].ToString();

转载于:https://www.cnblogs.com/Zpyboke/p/6694754.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值