ASP.NET MVC 3 - 如何直接路由到操作

时间:2011-10-05 15:33:35

标签: asp.net-mvc-3 asp.net-mvc-routing

我有一个名为HomeController的控制器,其操作为Index(),MethodOne()和MethodTwo()。其中每个都只返回View()。 当我使用代码创建操作链接时:

@Html.ActionLink("Home", "Index", "Home")

我收到超链接:

<a href="/">Home</a>

这很好但是使用相同的ActionLink扩展方法来路由MethodOne我得到了超链接:

<a href="/Home/MethodOne">MethodOne</a></li>

我需要配置什么,以便我的网站接受超链接“/ MethodOne”,这当前返回404。 我怀疑这可能与路由有关。我的路由表目前是默认值:

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

1 个答案:

答案 0 :(得分:3)

您需要一条路线:

routes.MapRoute(
    "MethodOne", //Your route name.
    "methodone", //What your browser/user will see at the URL bar: localhost.com/methodone 
    new { controller = "Home", action = "MethodOne" } //What MVC3 will route to.
);

这会将请求映射并捕获到Home/MethodOne操作方法。