asp.net-mvc - ASP.NET MVC 4 - 2 个带段的区域,1 个不带段的区域

标签 asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing asp.net-mvc-areas

我刚刚创建了一个新的 ASP.NET MVC 4 解决方案并添加了 3 地区 并希望它们按指示路由:

1. General         -> http://www.mysite.com/
2. Members         -> http://www.mysite.com/members/
3. Administration  -> http://www.mysite.com/administration/

我可以配置路由,以便“常规”区域在它是第一个段时工作,但当我不希望“常规”作为 URL 中的一个段出现时,似乎无法让我的路由在所有 3 个区域中工作。正如你所看到的,我的目标是一个干净的 URL 结构。

我计划在每个区域下添加一些 Controller / View ,并希望维护这种区域组织。

我见过一个 similar MVC 2 problem posted但我不确定区域注册的顺序是否会纠正我的特定问题。

最佳答案

打开您的 GeneralAreaRegistration.cs 文件。

找到这个:

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

...并替换为:
context.MapRoute(null,
    "{controller}/{action}/{id}",
    new { controller = "General", action = "Index", id = UrlParameter.Optional }
);

回复评论:

假设您正在使用 URL http://www.mysite.com/members ,并假设这是在您的 MembersAreaRegistration.cs 文件中:
context.MapRoute(
    "Members_default",
    "Members/{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

...然后它应该工作。但是,如果您没有 controller = "Home"您的 MapRoute 默认值中的片段,那么 URL 必须是 http://www.mysite.com/members/home .

关于asp.net-mvc - ASP.NET MVC 4 - 2 个带段的区域,1 个不带段的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9982122/

相关文章:

c# - MVC4 索引操作无法正常工作

asp.net-mvc - 子操作的 ASP.NET MVC 路由匹配

asp.net-mvc - asp.net mvc 中的递归路由

c# - 从 Controller 操作中手动捆绑和缩小 JS

javascript - 根据 DropDownListFor 显示/隐藏 div

asp.net - 根据需要在服务器中生成并提供文件。在不消耗太多资源的情况下最好的方法是什么?

asp.net-mvc - LINQ to EF 有什么问题?

jquery - 如何使用 jQuery ajax 函数调用 WCF 服务

asp.net-mvc-4 - 仅限管理员用户使用 Glimpse

c# - 如何将 asp.net "Login" View 放在布局页面上,而不是 @Html.Actionlink 到单独的登录页面?