4

我有一个巨大的 MVC 应用程序,但不幸的是 MVC 区域没有在初始开发中使用。该应用程序变得如此模块化,以至于我们觉得有一个很好的例子来使用区域。将整个代码移动到“区域”结构有多容易或多难.. 是否有任何重大挑战/代码返工等我必须注意的事情?我可以只创建新区域并将控制器视图模型移动到适当的存储桶中吗?它工作正常吗?我是否过度简化了事情?如果有人以前采取过这条路线,将不胜感激反馈,评论..

4

1 回答 1

6

该应用程序适用于区域。由于分离,它将使其更易于维护和逻辑查看。但是,您将遇到一些困境。

命名空间

第一个很可能是命名空间。当您分离出具有依赖关系的连接逻辑或模型时,如果将依赖类放置在区域中,它们的命名空间引用可能需要更改。幸运的是,Visual Studio 可以使用简单的“解决”功能来处理这些问题。如果您尝试编译并向您显示所有存在问题的地方,编译器应该会抛出。很难预见所有这些事件将发生在哪里。但是,很可能不需要很多 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" });

除此之外,你应该很好。

于 2012-08-27T23:00:37.097 回答