Asp.net MVC使用相同的控制器进行多个路由

时间:2010-02-18 18:52:44

标签: asp.net-mvc routing

我有一个像这样的简单控制器(不,不是真的,但让我说我做)

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"...,具体取决于哪条路由指向显示视图的控制器。怎么办呢?

1 个答案:

答案 0 :(得分:3)

使用Html.RouteLink代替Html.ActionLink。它允许您指定路径名称。