2013-06-12 23 views
3

如果一個網址爲「www.site.com」的網站重定向到HomeController的索引操作。如何將url縮短爲動作參數

我已經

www.site.com/area/controller/action/{nick} 

我想要的網址

www.site.com/{nick} 

做同樣的事情

我如何創建一個路由和我在哪裏有創造呢?

在RouteConfig.cs或AreaRegistration.cs中?

回答

4

在您的RouteConfig.cs中,在所有路線之後添加以下路線。

routes.MapRoute 
(
    name: "Nick Route", 
    url: "{nick}", 
    defaults: new { area = "AreaName", 
        controller = "controllerName", 
        action = "Actionname", 
        nick = UrlParameter.Optional }); 
+0

可能是最好添加此* *後的默認設置。 –

+0

@ErikPhilips是...已添加到答案.. –

+0

非常感謝,它非常完美 –

2

我知道這個職位是舊的,但如果有人有興趣,他會發現這裏的解決方案http://www.nikolay-angelov.eu/custom-url-shortener-in-asp-net-mvc-5/

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

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

     routes.MapRoute(
      name: "URL", 
      url: "{shortURL}", 
      defaults: new { controller = "Home", action = "RedirectToLong", shortUrl = UrlParameter.Optional } 
     ); 

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