我有一个巨大的MVC应用程序,但不幸的是,在最初的开发中并没有使用MVC区域。应用程序正在变得如此模块化,以至于我们觉得有一个很好的案例来使用区域。将整个代码移到“区域”结构中有多容易或多难。有没有什么很大的挑战/代码返工等我需要注意的事情?我可以创建新的区域并将控制器视图模型移动到适当的存储桶中吗?它工作得很好吗?我是不是过于简单化了?如果任何人之前采取了这条路线,将感谢反馈,评论..
发布于 2012-08-28 07:00:37
这个应用程序可以很好地处理区域。由于分离,它将更容易维护,并且更容易从逻辑上查看。然而,您将遇到一些两难境地。
命名空间
第一个很可能是名称空间。当您分离出具有依赖关系的连接逻辑或模型时,如果依赖类被放置在区域中,则它们的名称空间引用可能需要更改。幸运的是,Visual Studio可以使用简单的"Resolve“功能来处理这些问题。如果您尝试编译并显示存在问题的所有位置,编译器应该会出现问题。很难预测所有这些情况会发生在哪里。然而,由于许多不同控制器使用的大部分指令应该放在一个地方,所以很可能不会有很多using指令需要使用。
路由
如果你要使用区域,那么你使用的每个动作链接都必须改变。您将被迫更改它们以表示新区域。
无区域(在底座中):
@Html.ActionLink("Label For Link", "ActionName", "ControllerName", new { area = "" }, null)具体区域:
@Html.ActionLink("Label For Link", "ActionName", "ControllerName", new { area = "SpecificAreaName" }, null)您可能还需要更改已有的任何return RedirectToAction代码。
基本区域:
return RedirectToAction("ActionName", "ControllerName");具体区域:
return RedirectToAction("ActionName", "ControllerName", new { Area = "SpecificAreaName" });除此之外,你应该做得很好。
https://stackoverflow.com/questions/12150672
复制相似问题