很多时候删除某个元素后,我们都希望回到原来的页面,如何实现呢?

假设在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 如何在执行完某任务后返回原来页面相关推荐

  1. Java等线程池执行完所有任务后再执行主线程

    2019独角兽企业重金招聘Python工程师标准>>> 因为要定时往数据库插入上百万数据,插入完之后再修改另外一部分数据, 怎么在线程池执行完所有任务后再执行主线程呢 import ...

  2. 基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度

    在之前的文章<推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler>和<简单.轻量.功能非常强大的C#/ASP.NET定时调度 ...

  3. ASP.NET MVC笔记

    ASP.NET MVC的应用程序生命周期还是跟原来ASP.NET WebForm一样没有区别,只是引入MVC后,加了一个UrlRoutingModule模块,该模块用来捕获应用程序生命周期中的Post ...

  4. ASP.NET MVC 4 视图页去哪里儿

    这里特别感谢 swagon 提到了Displaymodeprovider,所以才有了本篇博客,也使我对[View的呈现]中寻找视图页的过程有了清晰的认识! 前戏 在MVC中,执行完Action之后,会 ...

  5. 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 ...

  6. Java进击C#——应用开发之Asp.net MVC

    本章简言 上一章笔者讲到关于Asp.NET的知识点.了解Asp.NET基本的知识点之后,我们在来学习关于C#的MVC框架就简单多了.显然本章就是来介绍一下关于Asp.NET MVC.对于MVC的思想笔 ...

  7. ASP.NET MVC 入门5、View与ViewData

    本系列文章基于ASP.NET MVC Preview5. view在MVC模式中与用户进行最直接的接触,它负责数据的呈现.这里要注意一点就是,view只是负责数据的呈现,所以我们应该要尽量让view中 ...

  8. ASP.NET MVC 整合 Spring.net(1)- Controller进容器

    我们都知道Asp.net MVC自有一套执行机制. 通过分析MVC的MvcHandler关键代码 ProcessRequest         protected internal virtual v ...

  9. [转] Asp.net mvc 3 beta 新特性介绍

    Links:http://www.cnblogs.com/n-pei/archive/2010/10/11/1848089.html 国庆放假归来,刚好赶上asp.net mvc 3 beta发布,和 ...

最新文章

  1. R语言switch语句语法、实战:Switch语句用来处理嵌套的if else处理起来比较困难或者麻烦的条件判断问题
  2. 如何判断一家互联网公司要倒闭了?
  3. Python Demo 05--四大名著词云
  4. TIMING_05 VIVADO环境下的时序约束 之 基本时钟周期约束
  5. 捣蛋鹅显示服务器已满,无题大鹅模拟奖杯攻略分享
  6. C语言宏定义取得两数的最大值和最小值
  7. 华为机试HJ77:火车进站
  8. AndroidManifest.xml 注意事项
  9. Xshell使用教程
  10. 华为EC6108V9C/ E6108V9强刷固件及教程
  11. vue-froala-wysiwyg富文本编辑器
  12. pandas数据分析之分组聚合
  13. MySQL-python安装遇到的各种问题
  14. 3Dmax已经贴好图的文件如何导入unity3D中
  15. 无法完成压缩(zipped)文件来提取向导,怎么解决
  16. GCC and MinGW-w64 for Windows
  17. Android SDK Manager 目录文件下载
  18. 清华刘知远提出CPT:基于预训练视觉-语言模型的跨模态Prompt-Tuning
  19. VB中上传下载文件到SQL数据库
  20. 可以度量金融泡沫的对数周期幂律

热门文章

  1. c语言学习笔记 关于double
  2. 洛谷 1373 dp 小a和uim之大逃离 良心题解
  3. 第五十三天 how can I 坚持
  4. Junit4.x扩展:运行指定方法
  5. 【Java从0到架构师】JDBC、Spring JDBC、JUnit
  6. 《恋上数据结构第1季》单向链表、双向链表
  7. apache tomcat php mysql 配置_Apache与Tomcat服务器整合的基本配置方法及概要说明
  8. 案例学习BlazeDS+Spring之八InSync06“松耦合”UI同步事件通知
  9. Air与java通信
  10. 学习精华——成长篇(三)