asp.net-mvc – 如何将现有的asp.net应用程序迁移到asp.net MVC
我想现在将asp.net应用程序迁移到asp.net MVC模式格式。我应该遵循什么程序?任何分步说明将是非常有益的。
解决方法
这些是我的分步指南,基于我们在从一个典型的ASP.Net Webforms移动到ASP.Net MVC时我们在公司采取的步骤。这不是完美的,仍然是持续的,因为我们必须这样做的阶段,因为网站的大小,但也许有人会发现和文件基于我们的结果改进的答案。
阶段: 提示: >记住默认情况下,每个控制器将通过应用程序的虚拟子目录路由到,例如。 http://sitename/X会路由到XController(默认情况下它的Index方法),http://sitename/Y/Get将路由到YController的Get()方法。你可以随意改变(路由的真正强大),但这超出了这个答案的范围。 在我们的例子中,我们镜像了当前站点的真正的子目录布局,其中每个子目录成为一个控制器,例如。 / Account会有一个AccountController,/ X会有XController。其中的所有页面都被每个控制器中的操作替换。例如http://sitename/profile/about.aspx现在变为http://sitename/profile/about并映射到profileController中的“about”ActionResult方法。 >在Visual Studio中创建一个新的ASP.Net MVC应用程序,并立即在Global.asax文件中创建规则,忽略当前站点中存在的文件夹的路由规则。 一个。首先创建其视图。我倾向于使用网页浏览器呈现版本的页面作为我的基本HTML,然后在我知道的位置填充动态数据的占位符。 b。使用动态数据的占位符,使用简单的数据类型创建模型的初稿。这个模型将从简单的开始,但不断重构,因为你从原始网站迁移更多的网页,所以不要担心,如果它开始看起来有点重。如果你发现自己在一个模型中有太多的属性,你的品味,或看到一个逻辑分组超出了某些子集的项目的模型,也许这是一个迹象,该模型需要重构为有一个对象,而不是这些简单的数据类型作为属性,但在业务逻辑层中组成。 C。如果尚未创建控制器,则创建控制器,并为您的计划已确定应该路由到此视图的Action放置适当的ActionResult方法。 d。考虑为未知操作设置一些处理代码,如果你的global.asax.cs文件中没有一个{* catchall}路由规则。 e。为模型创建构造函数类,以便给定Controller将拥有的某些参数(作为您的{id}传递,或者可能是URL中的Request.QueryString参数,或HTTP头或cookie),Model将知道如何接触到您现有的业务逻辑类并构建自己以供View进行呈现。 F。转到列表中的下一页,然后从步骤a重新开始。 注意:如果你在移植阶段保持你的MVC网站的旧子目录的确切名字,最好是迁移整个子目录,我已经意识到,因为只做一些文件你需要的路由规则写变得更加复杂,因为如果现有文件夹存在与路由规则的路径相同的名称,并且该文件夹具有Default.aspx文件,则(/ foldername /)将默认为Default.aspx页面,因为它采取路由的先决条件规则。 提示:认真考虑使用像RouteDebug这样的工具进行路由调试,以便了解上述奇怪的事情,或者有多个路由规则触发并导致意外行为。 这是我的第一稿,如果我错过了任何步骤,或者您看到指南中有任何漏洞,请给我反馈,我将适当地修改答案。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |