asp.net mvc 如何在执行完某任务后返回原来页面

简介: 很多时候删除某个元素后,我们都希望回到原来的页面,如何实现呢? 假设在XController的index.cshtml(或aspx)中有: 删除,为了让删除后回到index页面,可以使用: 且在XController.

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

假设在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中,将原来的

<pre class="csharp" name="code">[HttpPost]  
ActionResult Delete(int id)  
{  
    try  
    {  
        ...  
        return RedirectToAction(...);  
    }  
    catch  
    {  
    }  
}</pre><br>  

改为:

[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><hrefhref = "/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里边内部处理了,这个是终极做法。

学习交流群:364976091
相关文章
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
41 0
|
1月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
29 0
|
1月前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
99 5
|
3月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
25 0
|
3月前
|
前端开发
.net core mvc获取IP地址和IP所在地(其实是百度的)
.net core mvc获取IP地址和IP所在地(其实是百度的)
124 0
|
4月前
|
JSON 运维 前端开发
Spring-mvc的参数传递与常用注解的解答及页面的跳转方式---综合案例
Spring-mvc的参数传递与常用注解的解答及页面的跳转方式---综合案例
|
5月前
|
开发框架 自然语言处理 前端开发
基于ASP.NET MVC开发的、开源的个人博客系统
基于ASP.NET MVC开发的、开源的个人博客系统
52 0
|
8月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
116 0