2

我想在我的网站上使用以下 URL 模式创建一个会员区:

注销用户的模式:

domain.com
domain.com/About
domain.com/Blog
domain.com/Blog/1 (where 1 is the post ID)

但我也有一个会员区,我在 URL 前面加上 Member,如下所示:

domain.com/Member/MyProfile
domain.com/Member/MySettings

这看起来很简单,但我看不到为此制定路由规则的明显方法。我有:

        routes.MapRoute(
         "Member", // Route name
         "Member/{controller}/{action}/{id}", // URL with parameters
         new { controller = "Task", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

            routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

当您登录时,这对成员非常有用,但不幸的是,第一条规则也与注销的视图匹配,并且 Url.Action("Blog", "Home") 生成一个如下所示的 Url:

domain.com/Member/Home/Blog

如何告诉 Url.Action 它必须在成员区域之外使用默认规则形成 Url?

4

1 回答 1

1

您可以使用真正的 MVC 区域,而不是尝试模拟一个。还有一个视频你可以看看。这个想法是您将默认路由定义保留在 Global.asax 中,然后将成员区域添加到您的站点,该区域将具有单独的路由配置。

于 2012-04-04T17:38:42.457 回答