路由属性覆盖路由

时间:2015-08-19 13:25:56

标签: asp.net-mvc-routing attributerouting

这是我的路线:

    routes.MapRoute("Login", "", new { action = "Login", controller = "Authentication"})
        .DataTokens = new RouteValueDictionary(new { area = "Authentication" });

    routes.MapMvcAttributeRoutes();

这是带动作的控制器:

[RouteArea("Authentication", AreaPrefix = "auth")]
[Route("{action=Login}")]
public class AuthenticationController : BaseController
{
    [HttpGet]
        [AllowAnonymous]
        public ActionResult Login()
        {
...

如果我注释掉routes.MapMvcAttributeRoutes();,那么我可以使用'/'请求登录操作。如果它离开那么这条路线不起作用,我得到404。

如何让网站的默认路由成为该区域的登录页面?

该区域的注册与属性无关。

1 个答案:

答案 0 :(得分:0)

我删除了约定路由并将以下内容添加到web.config中的<system.web>

<urlMappings enabled="true">
      <clear />
      <add url="~/" mappedUrl="~/auth" />
    </urlMappings>