【问题标题】:Areas inside Areas? MVC4区域内的区域? MVC4
【发布时间】:2018-11-27 11:17:14
【问题描述】:

我正在开发一个大型应用程序,由三个主要应用程序组成,每个应用程序包含许多模块。

所有三个共享相同的安全性和布局。这种划分基本上是合乎逻辑的。

我正在寻找组织方面的最佳方法。 使用简单的区域结构是不够的,因为每个区域内部应该有更多的区域来分隔模块。

创建三个单独的项目会引发身份验证和作为局部视图共享资源的问题。

我尝试了便携式区域,但它使我的团队的更改开发变得复杂,因为必须构建它们以测试任何更改,即使它只是在视图中。

我可以尝试其他解决方案吗?有没有类似区域内的区域?

我真的不想拥有数千个区域名称 App1.Admin、App2.Admin、App1.Dashboard...

欢迎任何建议。谢谢!

【问题讨论】:

  • 好的,该帖子有助于解决子区域的路由问题。但所有区域仍在同一个文件夹“区域”中。所以大型应用程序的问题仍然存在。我希望区域内或列表中的区域文件夹能够在 distints 文件夹中划分区域。

标签: c# asp.net-mvc model-view-controller architecture


【解决方案1】:

好的。我设法在应用程序的根目录上创建了新的区域文件夹,例如 (Areas, Areas1, Areas2),并使用以下代码在 global.asax 中注册它们:

    private static void RegistrarAreaEntidades()
    {
        string[] newAreaStrings = new string
            [] { "~/Areas.Entidades/{2}/Views/{1}/{0}.cshtml" };
        var razorEngine = ViewEngines.Engines.OfType<RazorViewEngine>().First();
        razorEngine.AreaMasterLocationFormats =
            razorEngine.AreaMasterLocationFormats.Concat(newAreaStrings).ToArray();
        razorEngine.AreaViewLocationFormats =
            razorEngine.AreaViewLocationFormats.Concat(newAreaStrings).ToArray();
    }

现在新区域可以工作,但 Visual Studio 无法识别它们。如果我执行 Html.ActionLink("idksomething", "Index", "Home", new {area="Example"}),VS 会在“Example”下划线,但链接可以正常工作。 看来我必须在另一个地方注册该区域。 ¿ 有什么想法吗?

PD:对不起,我的英语不好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2016-07-29
    • 1970-01-01
    • 2012-07-25
    • 2011-12-18
    • 1970-01-01
    相关资源
    最近更新 更多