首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC代码重构

MVC代码重构
EN

Stack Overflow用户
提问于 2012-08-28 06:51:49
回答 1查看 181关注 0票数 4

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-28 07:00:37

这个应用程序可以很好地处理区域。由于分离,它将更容易维护,并且更容易从逻辑上查看。然而,您将遇到一些两难境地。

命名空间

第一个很可能是名称空间。当您分离出具有依赖关系的连接逻辑或模型时,如果依赖类被放置在区域中,则它们的名称空间引用可能需要更改。幸运的是,Visual Studio可以使用简单的"Resolve“功能来处理这些问题。如果您尝试编译并显示存在问题的所有位置,编译器应该会出现问题。很难预测所有这些情况会发生在哪里。然而,由于许多不同控制器使用的大部分指令应该放在一个地方,所以很可能不会有很多using指令需要使用。

路由

如果你要使用区域,那么你使用的每个动作链接都必须改变。您将被迫更改它们以表示新区域。

无区域(在底座中):

代码语言:javascript
复制
@Html.ActionLink("Label For Link", "ActionName", "ControllerName", new { area = "" }, null)

具体区域:

代码语言:javascript
复制
@Html.ActionLink("Label For Link", "ActionName", "ControllerName", new { area = "SpecificAreaName" }, null)

您可能还需要更改已有的任何return RedirectToAction代码。

基本区域:

代码语言:javascript
复制
return RedirectToAction("ActionName", "ControllerName");

具体区域:

代码语言:javascript
复制
return RedirectToAction("ActionName", "ControllerName", new { Area = "SpecificAreaName" });

除此之外,你应该做得很好。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12150672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档