爱上MVC3系列~PartialView中的页面重定向

简介:

在MVC的每个action中,都可以指定一种返回页面的类型,可以是ActionResult,这表示返回的页面为view或者是一个PartialView,前台是一个全整页面,后台是页面的一部分。

在以ASPX为页面引擎时,PartialView被称为分部视图,扩展名为ASCX,与webform中的用户控件是一样的,即页面中的一个部分;而使用razor为页面引擎时,PartialView扩展名还是cshtml,这一点感觉与普通页面有些混乱。不过,这不是今天我要讲的重点,今天的重点间在partialview中进行页面重定向的方式。

第一种情况:在PartialView中进行表单提示操作后,需要返回别一个PartialView来填充原来的这个PartialView的内容

这种情况需要我们的action返回值类型必须是PartialViewResult,返回代码必须是PartialView

代码如下:

 1        public PartialViewResult ApplyRegister(User_Register_ApplyModel entity)
 2         {
 3             User_Register_Apply user_Register_Apply = new User_Register_Apply();
 4             TryUpdateModel(user_Register_Apply);
 5             if (ModelState.IsValid)
 6             {
 7                 user_Register_Apply.UserID = VCommons.Utils.GetNewGuid();
 8                 VM = user_InfoManager.ApplyRegister(user_Register_Apply);
 9                 if (!VM.IsComplete)
10                 {
11                     VM.ToList().ForEach(i => ModelState.AddModelError("", i));
12                 }
13                 else
14                     return PartialView("ApplySuccess", entity.Email);//返回到指定的PartialView,它将替换ApplyRegister这个视图内容
15             }
16             return PartialView();
17         }
复制代码

第二种情况,在PartialView视图中提交表单,然后使整个页面进行一个跳转,需要注意的是不能用response.redirect,而必须用JS的location.href,前者会在本partial位置进行跳换。

代码如下:

 1      public PartialViewResult UserLogOn(UserLogOnModel entity)
 2         {
 3             if (ModelState.IsValid)
 4             {
 5                 if (LogOn(new User_Info { Email = entity.Email, Password = entity.Password }).IsComplete)
 6                 {
 7                     Response.Write("<script>location.href='home/index';</script>");//在ascx中跳到指定页,需要用JS方法
 8                 }
 9             }
10             return PartialView();
11         }


第三种情况,也是最简单的一种情况,在partialview中只是一个链接,没有提交动作,只是将partialview的部分进行重定向,这里代码使用response.redirect()即可

代码如下:

 1   public PartialViewResult UserLogOn(UserLogOnModel entity)
 2         {
 3             if (ModelState.IsValid)
 4             {
 5                 if (LogOn(new User_Info { Email = entity.Email, Password = entity.Password }).IsComplete)
 6                 {
 7                      Response.Redirect("/home/index");
 8                 }
 9             }
10             return PartialView();
11         }

个人建议,对于partialview的action,如果只是返回视图,而不是返回json和其它格式的对象,最好使用PartialViewResult 进行返回,而不要使用ActionResult,这样可以避免一些不

必要的麻烦。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:爱上MVC3系列~PartialView中的页面重定向,如需转载请自行联系原博主。

目录
相关文章
|
11月前
|
JSON 运维 前端开发
Spring-mvc的参数传递与常用注解的解答及页面的跳转方式---综合案例
Spring-mvc的参数传递与常用注解的解答及页面的跳转方式---综合案例
|
开发框架 数据可视化 前端开发
ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
565 0
|
前端开发
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-页面展示
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-页面展示
42 0
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-页面展示
|
前端开发
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-页面展示
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-页面展示
43 0
|
前端开发
java202304java学习笔记第六十三天-mvc的请求-添加页面展示1
java202304java学习笔记第六十三天-mvc的请求-添加页面展示1
57 0
mvc.net分页查询案例——前台页面(Index.aspx)
mvc.net分页查询案例——前台页面(Index.aspx)
|
开发框架 .NET C#
mvc.net分页查询案例——前台页面(Index.aspx)
mvc.net分页查询案例——前台页面(Index.aspx)
69 0
|
JSON 前端开发 JavaScript
C# MVC 向页面传值方式
C# MVC 向页面传值方式
|
前端开发 Java Spring
Spring MVC页面的转发与重定向
页面的转发与重定向
366 2
Spring MVC页面的转发与重定向

相关实验场景

更多