2014-12-13 54 views
0

我想路由一箇舊的URL是domain.com/1024我的主頁在MVC。MVC路由與數字

我總是收到找不到資源的錯誤。

這裏是我的routeConfig

 routes.MapRoute(
     name: "1024", 
     url: "{controller}/{action}", 
     defaults: new { controller = "Home", action = "Direct", id = UrlParameter.Optional } 
    ); 

我的控制器

public ActionResult Direct() 
    { 

     return RedirectToAction("Index"); 
    } 
+0

mydomain.com/Home/Direct作品大。 – 2014-12-13 06:46:44

回答

0

如果您有默認在你的路由定義,例如:

routes.MapRoute(
    name: "1024", 
    url: "{id}", 
    defaults: new { controller = "Home", action = "Direct" } 
); 

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

這將路線(主機) :(端口)/到索引和(主機):(端口)/ 1024直接在那裏你可以RedirectToAction(「索引」)。

例如一個HomeController的展示點(這只是重定向到1024指數):

public class HomeController : Controller 
    { 
     // 
     // GET: /Home/ 

     public ActionResult Index() 
     { 
      return View(); 
     } 

     public ActionResult Direct(int? id) 
     { 
      if (id.HasValue && id.Value == 1024) 
      { 
       return RedirectToAction("Index"); 
      } 
      else 
      { 
       return View(); 
      } 
     } 

    } 

這將任何ID重定向到指數:

public class HomeController : Controller 
    { 
     // 
     // GET: /Home/ 

     public ActionResult Index() 
     { 
      return View(); 
     } 

     public ActionResult Direct(int? id) 
     { 
      return RedirectToAction("Index"); 
     } 

    } 
+0

感謝兄弟,它工作得很好我添加了一個自定義錯誤標籤到我的網絡配置重定向所有的404的,但這很好。謝謝! – 2014-12-13 07:17:44

+0

好聽,歡呼! – Lawrence 2014-12-15 04:57:22