在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,这样可以避免一些不

必要的麻烦。

PartialView中的页面重定向的更多相关文章

  1. MVC小系列(十)【PartialView中的页面重定向】

    在mvc的每个Action中,都可以指定一种返回页面的类型,可以是ActionResult,这表示返回的页面为View或者是一个PartialView, 在以Aspx为页面引擎时,PartialVie ...

  2. WebForm 中的页面重定向和传值(转自 MSDN)

    ——原文地址:https://msdn.microsoft.com/zh-cn/library/6c3yckfw(v=vs.100).aspx      在开发 ASP.NET 网站时,您经常需要从一 ...

  3. Spring 中的页面重定向

    在写 java 程序设计实践作业的时候遇到了重定向页面的需求,因为还没学到 java web 开发,所以自己就在网上搜了一下相关的代码,总结出了一些小小的经验,希望在下学期学 java web 的时候 ...

  4. php中的页面跳转和重定向

    php中的页面跳转和重定向 ThinkPHP中跳转和重定向的区别 跳转: 浏览器认为: 当前URL请求成功, 重新请求新的URL. 浏览器会 记录当前的URL 和 新的URL 在请求历史记录中. 回退 ...

  5. Servlet中转发和重定向的区别

    Servlet中页面的跳转有两种方式:转发和重定向. 1.转发和重定向的区别 ①转发是服务器行为,重定向是客户端行为. ②转发是浏览器发生了一次请求,重定向至少是两次请求. ③转发地址栏中的url不会 ...

  6. 【Filter 页面重定向循环】写一个过滤器造成的页面重定向循环的问题

    今天做一个过滤器,碰上页面重定向循环的情况: 浏览器的访问路径是:http://192.168.16.104:8080/biologyInfo/login/login/login/login/logi ...

  7. ASP.NET中实现页面间的参数传递

    ASP.NET中实现页面间的参数传递   编写人:CC阿爸 2013-10-27 l  近来在做泛微OA与公司自行开发的系统集成登录的问题.在研究泛微页面间传递参为参数,综合得了解了一下现行页面间传参 ...

  8. 详细介绍ASP.NET页面重定向方法

    ASP.NET中页面重定向的使用的很频繁,实现方法也有不同,自己也试过几种,现在总结一下. 一.Transfer Execute Redirect重定向方法介绍 1.Server.Transfer方法 ...

  9. SpringMVC中使用RedirectAttributes重定向传参,防止暴露参数

    RedirectAttributes是SpringMVC3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的. 当我从jsp页面函数中带参数到controller层方法,方法执行完毕后返回 ...

随机推荐

  1. Chrome浏览器 v68.0.3440.106 正式版怎么样?

    谷歌浏览器Google Chrome稳定版迎来v68正式版第三个维护版本发布,详细版本号为v68.0.3440.106,上一个正式版v68.0.3440.84发布于8月1日,时隔8天Google又发布 ...

  2. 负载均衡之Ocelot+Consul(配置文件注册服务)

    继上篇 Ocellot 做负载均衡之后,本篇将记录 Ocelot + Consul 试验如何做服务发现和服务注册. 服务发现和服务注册的背景知识,一搜满街都是. 在此,我还是写下自己对这个术语的理解吧 ...

  3. 在WinForm里嵌入WPF模拟公交运行状态

    公司有个公交项目,模拟公交运行的时候使用的纯WinForm技术,5秒钟刷新一次,不仅看起来感觉很丑,而且性能上很有问题,听说一段时间后就会因为内存问题崩溃(估计是没释放非托管资源吧,不断重绘,非托管资 ...

  4. JIRA 6.3.6安装

    一:下载JIRA 从官网下载:https://www.atlassian.com/software/jira/download 我下载的版本是Linux版的 JIRA 6.3.6 wget http: ...

  5. bzoj 4736 /uoj274【清华集训2016】温暖会指引我们前行 lct

    [清华集训2016]温暖会指引我们前行 统计 描述 提交 自定义测试 寒冬又一次肆虐了北国大地 无情的北风穿透了人们御寒的衣物 可怜虫们在冬夜中发出无助的哀嚎 “冻死宝宝了!” 这时 远处的天边出现了 ...

  6. hdu1588:Gauss Fibonacci

    对每个0<=i<n求f(g(i))的和,其中f(x)为斐波那契数列第x项,g(i)=k*i+b,k,b,n给定,模数给定. 斐波那契数有一种用矩阵乘法求的方法,这个矩阵A自己写,令F[i] ...

  7. 转 蓝桥杯 历届试题 波动数列 [ dp ]

    传送门   历届试题 波动数列   时间限制:1.0s   内存限制:256.0MB     锦囊1   锦囊2   锦囊3   问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个 ...

  8. php 基础复习 2018-06-20

    (1)PHP 过滤器(Filter) PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入. 有两种过滤器: Validating 过滤器: 用于验证用户输入 严格的格式规则(比如 URL ...

  9. POJ 1753 Flip Game【枚举】

    题目链接: http://poj.org/problem?id=1753 题意: 由白块黑块组成的4*4方格,每次换一个块的颜色,其上下左右的块也会被换成相反的颜色.问最少换多少块,使得最终方格变为全 ...

  10. 【笨木头Lua专栏】基础补充07:协同程序初探

    哎.周五晚上我都还这么努力看书.真是好孩子.(小若:不想吐槽了) 事实上我都准备rs=1&u=http%3A%2F%2Fwww%2Ebenmutou%2Ecom%2Farchives%2F17 ...