mvc 重定向的几种方式
巴扎黑2016-11-09 15:56:08603在RouteConfig添加一个简单的路由
1 2 3 4 5 6 |
name: "Article" ,
url: "Detial/{id}" ,
defaults: new { controller = "Article" , action = "Detial" , id = UrlParameter.Optional },
constraints: new { id = @ "\d+" }
);
|
302重定向
1 2 3 4 5 6 7 8 9 | public ActionResult UrlTest1()
{
return Redirect( "/Article/Detial/1" );
} public ActionResult UrlTest2()
{
return RedirectToAction( "Detial" , "Article" , new System.Web.Routing.RouteValueDictionary( new { id = 2 }));
{
return RedirectToRoute( "Article" , new System.Web.Routing.RouteValueDictionary( new { id = 3 }));
}
|
301重定向
1 2 3 4 5 6 7 8 9 | public ActionResult UrlTest4()
{
return RedirectPermanent( "/Article/Detial/4" );
} public ActionResult UrlTest5()
{
return RedirectToActionPermanent( "Detial" , "Article" , new System.Web.Routing.RouteValueDictionary( new { id = 5 }));
{
return RedirectToRoutePermanent( "Article" , new System.Web.Routing.RouteValueDictionary( new { id = 6 }));
}
|
也可以自己设置
1 2 3 4 5 6 7 | public ActionResult UrlTest7()
{
return new RedirectToRouteResult( "Article" , new System.Web.Routing.RouteValueDictionary( new { id = 7 }), false) { };
} public ActionResult UrlTest8()
{
return new RedirectResult( "/Article/Detial/8" , false);
}
|
要注意的是,在View()中指定不同的视图不是重定向
1 2 3 4 | public ActionResult UrlTest9()
{
return View( "Detial" , null, new { id = 9 });
}
|
第二个代码段和第三个代码段中的方法,都会用第四个代码段中的形式最后以Response.Redirect方法返回给客户端