• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NetMVCAction重定向跳出Controller和Area

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

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



 

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?
  1. 通过TempData传递:  
  2. //本action中代码</span>  
  3. this.TempData["name"]="Argo";  
  4. RedirectToRoute(new { contoller="Home", action="Index" , area="MyArea"});  
  5. //目标action中代码</span>  
  6. string name=TempData["name"].ToString();  

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
将层叠样式表链接到asp.net页面的方法有两种发布时间:2022-07-10
下一篇:
ASP.NET缓存学习——概述发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap