asp.net mvc 如何在执行完某任务后返回原来页面
很多时候删除某个元素后,我们都希望回到原来的页面,如何实现呢?
假设在XController的index.cshtml(或aspx)中有:
<a><href = "/area/XController/delete?id=10">
删除</a>,为了让删除后回到index页面,可以使用:
<a><href = "/area/XController/delete?id=10&backUrl=" + @Request.Url.ToString()>
且在XController.cs中,将原来的
[HttpPost]
ActionResult Delete(int id)
{try{...return RedirectToAction(...);}catch{}
}
改为:
[HttpPost] ActionResult Delete(int id, string backUrl) { try { ... return Redirect(backUrl); } catch { } }
Request.Url包含了所有的地址信息(包括参数),它是一个Uri类型而非String,因此可以进行很多其他额外操作(如只要地址/服务器/查询参数等),详情可上网搜索。
没有试过"/Area/Controller/Action/id"怎么弄,应该大致相仿。
2011-08-18补充:当backUrl里边有“&”的时候(要返回的地方有多个参数),直接这样写会出错,必须:
<a><href = "/area/XController/delete?id=10&backUrl=" + @(HttpUtility.UrlEncode(Request.Url.ToString()))>
以便对返回代码编码(把所有特殊字符全部变成%什么的,中文也一样运行)。
写多了就觉得麻烦做了个Helper:
public static partial class Helper { public static string ReturnUrlOf(this HtmlHelper htmlHelper, HttpRequestBase request) { return HttpUtility.UrlEncode(request.Url.ToString()); } }
在原来要写那些东西的地方写上Html.ReturnUrlOf(Request)就可以了(Request是View的一个属性,和Html一样随叫随到)。
但是没有最懒只有更懒,如果你和本人一样对<a>进行了封装,那么可以把接口直接封装成:
@Html.Link("x", "/SFC/Categories/Delete?rootID=" + root.ID + "&id=" + Model.ID, returnRequest: Request)
所有Encode 和Request问题都在 Link里边内部处理了,这个是终极做法。
点击下载免费的敏捷开发教材:《火星人敏捷开发手册》
转载于:https://www.cnblogs.com/JPAORM/archive/2011/06/14/2510491.html
asp.net mvc 如何在执行完某任务后返回原来页面相关推荐
- Java等线程池执行完所有任务后再执行主线程
2019独角兽企业重金招聘Python工程师标准>>> 因为要定时往数据库插入上百万数据,插入完之后再修改另外一部分数据, 怎么在线程池执行完所有任务后再执行主线程呢 import ...
- 基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度
在之前的文章<推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler>和<简单.轻量.功能非常强大的C#/ASP.NET定时调度 ...
- ASP.NET MVC笔记
ASP.NET MVC的应用程序生命周期还是跟原来ASP.NET WebForm一样没有区别,只是引入MVC后,加了一个UrlRoutingModule模块,该模块用来捕获应用程序生命周期中的Post ...
- ASP.NET MVC 4 视图页去哪里儿
这里特别感谢 swagon 提到了Displaymodeprovider,所以才有了本篇博客,也使我对[View的呈现]中寻找视图页的过程有了清晰的认识! 前戏 在MVC中,执行完Action之后,会 ...
- mvc移动创建oracle表,使用 ASP.NET MVC (C#)在15分钟内创建电影数据库应用程序 | Microsoft Docs...
使用 ASP.NET MVC 在 15 分钟内创建电影数据库应用程序 (C#)Create a Movie Database Application in 15 Minutes with ASP.NE ...
- Java进击C#——应用开发之Asp.net MVC
本章简言 上一章笔者讲到关于Asp.NET的知识点.了解Asp.NET基本的知识点之后,我们在来学习关于C#的MVC框架就简单多了.显然本章就是来介绍一下关于Asp.NET MVC.对于MVC的思想笔 ...
- ASP.NET MVC 入门5、View与ViewData
本系列文章基于ASP.NET MVC Preview5. view在MVC模式中与用户进行最直接的接触,它负责数据的呈现.这里要注意一点就是,view只是负责数据的呈现,所以我们应该要尽量让view中 ...
- ASP.NET MVC 整合 Spring.net(1)- Controller进容器
我们都知道Asp.net MVC自有一套执行机制. 通过分析MVC的MvcHandler关键代码 ProcessRequest protected internal virtual v ...
- [转] Asp.net mvc 3 beta 新特性介绍
Links:http://www.cnblogs.com/n-pei/archive/2010/10/11/1848089.html 国庆放假归来,刚好赶上asp.net mvc 3 beta发布,和 ...
最新文章
- R语言switch语句语法、实战:Switch语句用来处理嵌套的if else处理起来比较困难或者麻烦的条件判断问题
- 如何判断一家互联网公司要倒闭了?
- Python Demo 05--四大名著词云
- TIMING_05 VIVADO环境下的时序约束 之 基本时钟周期约束
- 捣蛋鹅显示服务器已满,无题大鹅模拟奖杯攻略分享
- C语言宏定义取得两数的最大值和最小值
- 华为机试HJ77:火车进站
- AndroidManifest.xml 注意事项
- Xshell使用教程
- 华为EC6108V9C/ E6108V9强刷固件及教程
- vue-froala-wysiwyg富文本编辑器
- pandas数据分析之分组聚合
- MySQL-python安装遇到的各种问题
- 3Dmax已经贴好图的文件如何导入unity3D中
- 无法完成压缩(zipped)文件来提取向导,怎么解决
- GCC and MinGW-w64 for Windows
- Android SDK Manager 目录文件下载
- 清华刘知远提出CPT:基于预训练视觉-语言模型的跨模态Prompt-Tuning
- VB中上传下载文件到SQL数据库
- 可以度量金融泡沫的对数周期幂律
热门文章
- c语言学习笔记 关于double
- 洛谷 1373 dp 小a和uim之大逃离 良心题解
- 第五十三天 how can I 坚持
- Junit4.x扩展:运行指定方法
- 【Java从0到架构师】JDBC、Spring JDBC、JUnit
- 《恋上数据结构第1季》单向链表、双向链表
- apache tomcat php mysql 配置_Apache与Tomcat服务器整合的基本配置方法及概要说明
- 案例学习BlazeDS+Spring之八InSync06“松耦合”UI同步事件通知
- Air与java通信
- 学习精华——成长篇(三)