这篇文章主要为大家详细介绍了 mvc 重定向的几种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在 RouteConfig 添加一个简单的路由
- //新增路由
- routes.MapRoute(
- name: "Article",
- url: "Detial/{id}",
- defaults: new { controller = "Article", action = "Detial", id = UrlParameter.Optional },
- constraints: new { id = @"\d+" }
- //namespaces: new string[] { }
- );
302 重定向
- public ActionResult UrlTest1() { //302
- return Redirect("/Article/Detial/1");
- }
- public ActionResult UrlTest2() { //302
- return RedirectToAction("Detial", "Article", new System.web.Routing.RouteValueDictionary(new {
- id = 2
- }));
- //return RedirectToAction("Detial", "Article",new { id = 1});
- }
- public ActionResult UrlTest3() { //302
- return RedirectToRoute("Article", new System.Web.Routing.RouteValueDictionary(new {
- id = 3
- }));
- //return RedirectToRoute("Article", new { id = 1 });
- }
301 重定向
- public ActionResult UrlTest4() { //301
- return RedirectPermanent("/Article/Detial/4");
- }
- public ActionResult UrlTest5() { //301
- return RedirectToActionPermanent("Detial", "Article", new System.Web.Routing.RouteValueDictionary(new {
- id = 5
- }));
- //return RedirectToActionPermanent("Detial", "Article", new { id = 1 });
- }
- public ActionResult UrlTest6() { //301
- return RedirectToRoutePermanent("Article", new System.Web.Routing.RouteValueDictionary(new {
- id = 6
- }));
- //return RedirectToRoutePermanent("Article", new { id = 1 });
- }
也可以自己设置
- 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() 中指定不同的视图不是重定向
- public ActionResult UrlTest9()
- {//200
- return View("Detial", null, new { id = 9 });
- }
第二个代码段和第三个代码段中的方法, 都会用第四个代码段中的形式最后以 Response.Redirect 方法返回给客户端
来源: http://www.phperz.com/article/17/0818/337993.html