首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC 2/ MVC 3/ MVC 4中的嵌套区域

MVC 2/ MVC 3/ MVC 4中的嵌套区域
EN

Stack Overflow用户
提问于 2010-07-09 18:17:45
回答 6查看 3.7K关注 0票数 10

从MVC 2开始,我们可以很容易地创建区域。现在我的问题与嵌套区域(区域内的区域)相关。

选择my "father“area文件夹,右键单击> Add > NO选项用于new Area

有没有可能用其他方式做这件事?或者这个选项会在不久的将来出现吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-03-17 22:12:07

我意识到这是一个古老的问题,但我会回答它,以防其他人试图解决这个问题。一种解决方案是创建区域,这些区域在比区域更低的级别上使用不同的路由值,例如,您的RouteConfig将如下所示:

代码语言:javascript
复制
public class RouteConfig
    {
        /// <summary>
        /// A function that registers the default navigation route.
        /// </summary>
        /// <param name="routes">The RouteCollection to act on.</param>
    public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            var route = routes.MapRoute(
            name: "Default",
            url: "{area}/{subArea}/{controller}/{action}/{id}",
            defaults: new { area = "DefaultArea", controller = "Home", action = "Splash", id = UrlParameter.Optional, section = "Customer" },
            namespaces: new string[] { "Application.Controllers" });
        }
    }

其中一个分区注册可能如下所示:

代码语言:javascript
复制
public class ApplicationSubAreaRegistration : AreaRegistration 
{
    public override string AreaName 
    {
        get 
        {
            return "ApplicationSubArea";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context) 
    {
        context.MapRoute(
            "SubArea_default",
            "Area/SubArea/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional },
            new string[] { "Application.Areas.AreaName.SubAreaName.Controllers" }
        );
    }
}

读完这篇文章后,"area“看起来还像一个单词吗?因为对我来说不是。

附注:你可以递归地做很多次(理论上),例如,你可以这样做

代码语言:javascript
复制
url: "{area}/{subArea}/{subSubArea}/{subSubSubArea}/{evenMoreSubArea}/{controller}/{action}/{id}",

在你的RouteConfig.cs和

代码语言:javascript
复制
"Area/SubArea/SubSubArea/SubSubSubArea/EvenMoreSubArea/{controller}/{action}/{id}",

在你所在地区的登记处。

票数 9
EN

Stack Overflow用户

发布于 2010-07-20 20:45:19

目前还没有任何信息告诉我们是否会有嵌套区域。

在未来,这种情况可能会改变。

票数 3
EN

Stack Overflow用户

发布于 2010-07-19 21:13:18

使用Multi-project areas的思想作为开始,我想你可以递归地创建更多的嵌套区域。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3211663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档