2010-02-18 83 views
0

我有一個簡單的控制器這樣的(不,不是真的,但讓我們說我這樣做)Asp.net MVC相同的控制器爲多個路由

public class SomethingController : Controller { 
    public ActionResult Method1() { 
     return View("Something1"); 
    } 

    public ActionResult Method2() { 
     return View("Something2"); 
    } 
} 

現在我想有兩個不同的使用該控制器路線:

public static void RegisterRoutes(RouteCollection routes) { 
    routes.MapRoute("Route 1", "Route1/{action}", new { controller = "Something" }); 
    routes.MapRoute("Route 2", "Route2/{action}", new { controller = "Something" }); 
} 

直到這裏,沒有什麼特別的。然而,我的觀點Something1裏面我現在不願意做

Html.ActionLink("Do Something", "Method2") 

,這應該呈現<a href="Route1/Method2"...<a href="Route2/Method2"...,這取決於哪條路線導致了顯示的視圖控制器。如何才能做到這一點?

回答

3

使用Html.RouteLink而不是Html.ActionLink。它讓你指定路由名稱。

+0

@Obalix:真的嗎?這將如何工作?我認爲它只會找到名爲Route1Controller的控制器。你能詳細說明嗎? – erikkallen 2010-02-18 21:36:36