MVC控制器执行重定向

  前面了解过了动作方法可以返回一个视图,其中出现了会去渲染非默认动作方法名为名称的视图,这种情况下,其实可以重定向到渲染该视图的动作方法上去,而不是由自己去渲染该视图。

说的有点繁琐,可以这样理解


return View("Nice");
//可以使用==>
return RedirectToAction("Nice");

或者

return View("Nice","Good");
==>
return RedirectToAction("Nice","Good");

结果都是一样的,除非Nice的Action中有一些需要传递给Nice视图的数据

对于这个重定向,我本人目前还是有些不是很理解“临时重定向”和“永久重定向”RedirectToActionPermanent
不得不说MVC的控制器辅助方法真的很多,一个重定向居然又分为

1.RedirectToRoute//定向到路由系统的URL

2.RedirectToAction//定向到动作方法

其实这两个辅助方法做的都是同样的事,都是将当前的路由重定向到另一个动作方法,然后去渲染一个视图返回给用户。

不过现在问题出来了,如果是重定向了的话,浏览器是会递交一个全新的Http请求的,这意味着我们是去了对原先请求细节的方法,意思就是我们不能访问这个动作方法中的数据了,假如我们就是想要保存重定向之前

动作方法中的数据该怎么办,那么我们可以使用TempData特性,该特性灰常神奇,不像一个全局变量一样,应用程序关闭才会被释放,它是当第一次被使用读取以后,就会被标记删除,然后在请求被处理完成以后正式被删除,是不是很Nice呢,不占用多少内存,又可以跨请求传递数据,又可以自动清除内存~~~

使用方法如下

?





1

2

3

4

5

6

7

8

9

10

public
RedirectToRouteResult Index(){

  TempDate["Nice"] = "Terry";

  TempData["Reason"] = "中奖啦";

  return
RedirectToAction("Nice");

}

public
ViewResult Nice(){

  Nice nice = new
Nice{Name=TempData["Nice"],Reason=TempData["Reason"]};

  return
View(nice);

}

如果你还不死心,想要这个跨域传递的数据再保留多一会,可以使用


TempData.Keep("Nice");

这样你的nice数据就可以再保留一次,下次读取完毕,请求完成还是会被删除的,如果你仍旧不想被删除,那我只能推荐你使用session了。。。

时间: 2024-12-17 22:18:36

MVC控制器执行重定向的相关文章

MVC控制器详解

原文地址:http://www.cnblogs.com/SeeYouBug/p/6441934.html#3628606 目录 一.理解控制器 1.1.什么是控制器 1.2.控制器的作用 1.3.创建实现IController接口的控制器 1.4.创建继承于Controller类的控制器 二.控制器对数据的接收 2.1.数据来源 2.2.通过上下文对象获取数据 2.3.使用动作(Action)方法参数 2.3.1.使用Action方法参数 2.3.2.理解参数对象实例化 2.3.3.理解可选参数

ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

原文:ASP.NET Core 入门教程 4.ASP.NET Core MVC控制器入门 一.前言 1.本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core MVC控制器操作简介返回类型示例 ASP.NET Core MVC控制器参数映射逻辑说明 ASP.NET Core MVC控制器参数映射/获取示例 2.本教程环境信息 软件/环境 说明 操作系统 Win

基于MVC4+EasyUI的Web开发框架形成之旅--MVC控制器的设计

自从上篇<基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍>总体性的概括,得到很多同行的关注和支持,不过上一篇主要是介绍一个总体的界面效果和思路,本系列的文章将逐步介绍其中的细节,本文主要介绍整个Web开发框架中的MVC控制器的设计.在设计之初,我就希望尽可能的减少代码,提高编程模型的统一性.因此希望能够以基类继承的方式,和我Winform开发框架一样,尽可能通过基类,而不是子类的重复代码来实现各种通用的操作. 1.登录控制的控制器基类设计 我们知道,一般我们创建一个MVC的控制

007.ASP.NET MVC控制器依赖注入

原文链接:http://www.codeproject.com/Articles/560798/ASP-NET-MVC-Controller-Dependency-Injection-for-Be 前言:在这篇文章中,我将通过一个demo,直截了当地说明依赖注入在MVC框架中的使用. 内容列表: 1.介绍 2.为什么使用控制器依赖注入 3.控制器静态结构 4.自定义控制器 5.Framework中控制器的创建 6.为什么使用控制器工厂模式 7.控制器工厂模式 7.1.目标1 7.2.目标2 8.

&lt;&lt;ABP文档&gt;&gt; Mvc 控制器

文档目录 本节内容: 简介 AbpController基类 本地化 其它 过滤 异常处理和结果包装 审计日志 验证 授权 工作单元 反伪造 模型绑定器 简介 ABP通过nuget包Abp.Web.Mvc集成到Asp.net Mvc 控制器.你可以像往常那样创建普通的Mvc控制器,依赖注入可以对普通的Mvc控制器起作用,但你应当使你的控制继承自AbpController,它提供了许多好处和更好的集成到ABP. AbpController基类 这是一个简单的继承自AbpController的控制器:

(转)基于MVC4+EasyUI的Web开发框架形成之旅--MVC控制器的设计

http://www.cnblogs.com/wuhuacong/p/3284628.html 自从上篇<基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍>总体性的概括,得到很多同行的关注和支持,不过上一篇主要是介绍一个总体的界面效果和思路,本系列的文章将逐步介绍其中的细节,本文主要介绍整个Web开发框架中的MVC控制器的设计.在设计之初,我就希望尽可能的减少代码,提高编程模型的统一性.因此希望能够以基类继承的方式,和我Winform开发框架一样,尽可能通过基类,而不是子类的重复

Asp.Net MVC 控制器

原文链接:http://www.asp.net/learn/mvc/ 这篇教程探索了ASP.NET MVC控制器(controller).控制器动作(controller action)和动作结果(action results)这几个主题.在读完本篇教程之后,你将会理解控制器如何控制访问者与ASP.NET MVC网站进行交互的方式. 1.理解控制器 MVC控制器负责响应对ASP.NET MVC网站发起的请求.每一个浏览器请求都映射到了一个专门的控制器.举个例子,设想一下你在浏览器地址栏输入了下面

学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器

MVC全称是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑.MVC是一种具有可测试性和易于维护的应用程序开发模式. 基于MVC的应用程序应该包含以下内容: ?模型:表示应用程序核心,是该应用程序中用来进行校验.执行业务逻辑的数据类,业务实体对象. ?视

ASP.NET MVC 控制器(二)

ASP.NET MVC 控制器激活(二) 前言 在之前的篇幅中,用文字和图像来表示了控制器的激活过程,描述的角度都是从框架默认实现的角度去进行描述的,这样也使得大家都可以清楚的知道激活的过程以及其中涉及到的对象模型,今天的篇幅就是在激活的过程中,框架提供了哪些可注入点,站在一个使用者的角度来进行描述. 激活控制器-注入点入口 如上图,这是上个篇幅中描述的控制器激活过程图,这里引用过来是怕有的朋友忘记了前面的所说和没看过前面篇幅的朋友. 就从默认控制器工厂的实现来看,在CreateControll