我可以在一个路线图中有多个动作吗?

时间:2012-10-06 05:11:14

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

我设置了以下路线:

    context.MapRoute(
        "MyAccount_default",
        "MyAccount/{controller}/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional }
    );

以及以下链接:

/MyAccount/Access/Login
/MyAccount/Access/Logout
/MyAccount/Access/Register

我是否可以通过某种方式创建路线图,以便输入:

/Login
/Logout
/Register 

会将请求定向到MyAccount区域,Access控制器和Login / Logout或Register方法吗?如果我有 路由映射然后它可以属于MyAccount区域的路由映射,还是需要在那之外呢?

1 个答案:

答案 0 :(得分:1)

你真的应该具体说明你的路线了。如果您想要标准路线之外的东西,请将它们添加到路线表中。


context.MapRoute(
        "Login",
        "/Login",
        new { controller="Access", action = "Login"}
    );

在默认路线之前添加。 另一个选择是使用我们的默认路由,但另外使用https://github.com/mccalltd/AttributeRouting上的AttributeRouting项目 并在每个控制器中指定您的操作方法的附加路径。

请注意,您可以在Login操作方法上进行编码,例如:


[GET("Login")]
public ActionResult Login()
{
}

因此将使用您的默认路由以及此扩展路由。我相信无论如何都应该有效:)