gpt4 book ai didi

asp.net-mvc-3 - MVC 2/MVC 3/MVC 4中的嵌套区域

转载 作者:行者123 更新时间:2023-12-04 06:49:21 24 4
gpt4 key购买 nike

从MVC 2开始,我们可以轻松创建区域。现在,我的问题与嵌套区域(区域内部的区域)有关。

选择我的“father”区域文件夹,右键单击> Add> NO选项以获取new Area

是否有可能以其他方式做到这一点?还是在不久的将来会提供此选项?

最佳答案

我意识到这是一个古老的问题,但是如果其他任何人都想找出答案,我会回答。一种解决方案是创建使用比区域更低级别的不同路由值的区域,例如,RouteConfig看起来像这样:

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" });
}
}

您的一个分区注册可能看起来像这样:
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" }
);
}
}

看完之后,“区域”看起来仍然像单词吗?因为这对我来说不是。

P.S.您可以(理论上)根据需要多次递归执行此操作,例如,您可以执行
url: "{area}/{subArea}/{subSubArea}/{subSubSubArea}/{evenMoreSubArea}/{controller}/{action}/{id}",

在您的RouteConfig.cs中
"Area/SubArea/SubSubArea/SubSubSubArea/EvenMoreSubArea/{controller}/{action}/{id}",

在您所在的地区注册。

关于asp.net-mvc-3 - MVC 2/MVC 3/MVC 4中的嵌套区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3211663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com