区域内的区域? MVC4

时间:2018-06-18 14:59:13

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

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

这三者共享相同的安全性和布局。该部门基本上是合乎逻辑的。

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

创建三个单独的项目会导致身份验证和共享资源作为部分视图出现问题。

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

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

我真的不希望有一个thousan地区名称App1.Admin,App2.Admin,App1.Dashboard ...

欢迎任何建议。谢谢!

1 个答案:

答案 0 :(得分:0)

好的。我设法在应用程序的根目录上创建了新的Areas文件夹,例如(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”,新建{area =“ Example”}}),则VS会在“ Example”下划线,但链接可以正常工作。 好像我必须在另一个地方注册该区域。 ¿任何想法吗?

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