博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net mvc 如何在执行完某任务后返回原来页面
阅读量:7097 次
发布时间:2019-06-28

本文共 1166 字,大约阅读时间需要 3 分钟。

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

假设在XController的index.cshtml(或aspx)中有:

删除</a>,为了让删除后回到index页面,可以使用:

且在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里边有“&”的时候(要返回的地方有多个参数),直接这样写会出错,必须

以便对返回代码编码(把所有特殊字符全部变成%什么的,中文也一样运行)。

写多了就觉得麻烦做了个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里边内部处理了,这个是终极做法。

转载地址:http://qzhql.baihongyu.com/

你可能感兴趣的文章
MySQL强制性操作
查看>>
timestamp与timedelta,管理信息系统概念与基础
查看>>
重写对象ToString方法
查看>>
备忘: C++中的 vector 容器
查看>>
smt中查看图片与视频缩略图中,如何获得小视频的长度。
查看>>
图片(img标签)的onerror事件
查看>>
2013应届毕业生“百度”校招应聘总结
查看>>
CentOS系统启动流程
查看>>
myEclipse的Aptana studio插件安装时出现Error opening the editor.
查看>>
Mysql 知识(1)
查看>>
根据不同选择显示不同单价的逻辑
查看>>
“整个场面我Hold住!”软件测试计划
查看>>
利用SmtpClient发送邮件
查看>>
线性表练习题1
查看>>
C# 面试题大全
查看>>
「THUPC2018」赛艇 / Citing
查看>>
linux shell 命令学习(4) cut - remove sections from each line of files
查看>>
python正则提取关键字
查看>>
php 中 set_time_limit 理解
查看>>
28 写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(进阶)...
查看>>