MVC4笔记 RedirectResult,RedirectToRoute

RedirectResult:运行重新导向到其他网址,在RedirectResult的内部,基本上还是以Response.Redirect方法响应HTTP 302暂时导向。

eg:

public ActionResult Redirect()
{
    return Redirect("/Home/NewIndex");
}

  

在mvc3版本之后,System.Web.Mvc.Controller类型还内建了一个RedirectPermanent辅助方法,可以让Action响应HTTP 301永久导向,使用HTTP 301永久导向还可以提升SEO效果,可保留原本页面网址的网页排名Ranking记录,并自动迁移到转向的下一页,这对于网站改版导致网站部分页面的网址发生变更时非常使用。

eg:

public ActionResult Redirect()
{
    return RedirectPermanent("/Home/NewIndex");
}

  

RedirectToRoute:与前者类似,不够它会替你运算所有现有的网址路由值RouteValue,并比对网址路由表RouteTable中的每条规则,有助于生成mvc的网址。

控制器类别中有四个与RedirectToRoute有关的辅助方法

1.RedirectToAction

2.RedirectToActionPermanent

3.RedirectToRoute

4.RedirectToRoutePermanent

上述1,2是一个比较简单的版本,直接传入Action名称就可设置让浏览器转向该Action的网址,也可以传入新增的RouteValue值。

eg:

public ActionResult RedirectToActionSample()
{
    //转址到同控制器的另一个Action
    return RedirectToAction("SamplePage");
    //转址到指定控制器的特定action并采用http 301永久转址
    return RedirectToActionPermanent("List","Member");
    //转址到MemberController的ListAction,并且加上page这个RouteValue
    return RedirectToAction("List","Member",new { page=3});
}

  

3,4则是较高级的版本,可利用在Global.asax中定义的网址路由表来指定不同的转向网址,

eg:

public ActionResult aaa()
{
    //转址到同控制器的另一个Action
    return RedirectToRoute( new { action="SamplePage"});
    //转址到指定控制器的特定action
    return RedirectToRoute( new { controller="Member",action="List"});
    //转址到MemberController的List Action,并且加上page这个RouteValue
    return RedirectToRoute( new { controller="Member", action="List",page=3})
    //转址到App_Start\RouteConfig.cs中的registerRoutes方法定义的网址路由表中的某个路由
    return RedirectToRoute(RouteConfig.cs中某个MapRoute下配置的路由name);
}

  

时间: 2024-11-10 16:00:58

MVC4笔记 RedirectResult,RedirectToRoute的相关文章

MVC4 笔记

1. Microsoft.Web.Helpers.UrlBuilder 2. Microsoft.Web.Mvc.AreaHelpers public static string GetAreaName(RouteBase route); public static string GetAreaName(RouteData routeData); 3 MVC4 笔记

RedirectResult,RedirectToRoute

RedirectResult:运行重新导向到其他网址,在RedirectResult的内部,基本上还是以Response.Redirect方法响应HTTP 302暂时导向. eg: public ActionResult Redirect() { return Redirect("/Home/NewIndex"); } 在mvc3版本之后,System.Web.Mvc.Controller类型还内建了一个RedirectPermanent辅助方法,可以让Action响应HTTP 301

MVC4笔记 Area区域

mvc4.0新增的area区域机制,可以协助你在架构较为大型的项目,让独立性较高的部分功能独立成一个MVC子网站,以降低网站与网站之间的耦合性,也可以通过area的切割,让多人同时开发同一个项目时候,能够减少互相冲突的机会. 在mvc专案中不能有两个同名的控制器,即使你有区分不同的命名空间可以正常编译,但实际上在运行时仍然出错,除非在app_start/RouteConfig文件中通过mapRoute方法新增网址路由的设置,并明确指定命名空间,才能让此功能正常运行. eg routes.MapR

【要什么自行车】ASP.NET MVC4笔记03:调用编辑器 kindeditor

参考:http://www.cnblogs.com/guzhongx/p/kindeditor.html 1.下载kindeditor,存放于Content文件夹下 <script src="~/Content/kindeditor/kindeditor-all.js"></script> 2.View <script> var editor; KindEditor.ready(function (K) { editor = K.create('te

【要什么自行车】ASP.NET MVC4笔记02:上传文件 uploadify 组件使用

参考:http://www.cnblogs.com/luotaoyeah/p/3321070.html 1.下载 uploadify 组件,copy至 Content文件夹 <link href="~/Content/uploadify/uploadify.css" rel="stylesheet" /> <script src="~/Content/uploadify/jquery.uploadify.js"></

MVC4笔记 view如何从action中取得数据

方式:1使用弱类型取,2,使用强类型,两者的差别在于view页面最上方声明的方式 如果使用弱类型接受来自控制器的数据,在view页面里完全不需要有任何的生命,数据可以从ViewData,ViewBag,TempData取得,在页面中可以通过@Model属性, 取得从Action传来的ViewData.Model数据模型.但是@Model数据类型将会是object,所以算是弱类型的传值方式. 如果使用强类型的话,必须在view页面第一行使用@model关键字引入一个view页面专用的数据模型 eg

MVC4笔记 @functions @model @using

/////@functions自定义函数////// @helper辅助方法的确可以很方便的完成辅助方法开发,不过却失去了一些弹性,例如,无法在@helper中自定义属性,只能单纯的传入参数,然后格式化成你想要的样子后直接输出,因此razor还提供了@functions自定义函数功能,能够让你用接近c#类别的方式进一步定义为更复杂的辅助方法. 必须先通过@functions定义出一个代码区块,然后把c#方法写在里面,如果该方法必须将执行结果回传到view页面上的话,则必须以IHtmlString

MVC4 学习笔记 之 URL中存在编译的空格 20%20%

/Config/Edit/QQCC%20%20%20%20%20%20%20 原因是: 通过EF直接添加了空格? NO 是因为你的数据库字段设计问题,因为你当然设计如>:sID nchar(10) 那你一定想输入10个字符,但实际你只输入了必个,所以后面数据自动帮你补空了. 从EF数据库取出数据,在绑定的时候为安全,编码了,所以显示%20,代表一个空格. MVC4 学习笔记 之 URL中存在编译的空格 20%20%,布布扣,bubuko.com

RedirectResult、RedirectResultPermanent、RedirecToAction、RedirectToActionPermanent、RedirectToRoute、RedirectToRoutePermanent的区别

RedirectResult.RedirectResultPermanent.RedirecToAction.RedirectToActionPermanent.RedirectToRoute.RedirectToRoutePermanent的区别: 不带Permanent的是302临时跳转,搜索引擎将会收录当前地址, 带Permanent的是301永久跳转,搜索引擎将会收录跳转后的地址