所以我基本上在这里寻找想法。我以前从来没有真正做过这样的事情,而且此刻我有点难过。这可能是一个很长的解释,所以请耐心等待,希望你们中的一些大师可以给我一些东西。
我有两个MVC2应用程序。两者都在相同的代码库中运行,但它们由两个不同的URL(控制器)访问。所以我通过转到
来访问一个http://localhost/Extranet/mvc/StandardDeviationCones.cfc/mobile
和另一个去
http://localhost/Extranet/mvc/Indications.cfc/home
现在,第二个链接是应用程序已经开发了一段时间。您可以加载主页,浏览向导,访问表单,填写一堆信息等,以及代码更新时的所有内容,并在后台使用信息包填写Model
这是由您在前端选择的不同选项填充的。我们构建了一个完整的事件框架,以便您从下拉列表中选择一个选项,或者填写文本框,Model
更新,以非常特定的方式添加对象等。
只有在以完全相同的方式填充模型后,您才能调用我们拥有的某个Value()
方法。我试图创建一个手工传递的对象的精确副本,除了我花了大约6个小时做的事实,它仍然没有价值,因为某个地方的某些属性没有按照应该的方式设置。有大量的东西可以使这个Model
上升,所以很容易错过。
现在,此处的目标是能够按下新应用Mobile
上的按钮,并让它在后台创建默认Model
状态并Value()
,所以我们可以从结果中获取一个属性并将其显示在手机平台上。基本上是一个令人难以置信的真实的剥离版本。问题是,即使我可以通过旧应用程序中的向导并创建对象的默认状态,我也无法手动创建它,因为有数百个属性进入它,并且因为它是所有设置使用前端的事件框架,我真的无法说“自动设置此默认模型”,然后对其进行评估,因为所有调用都是通过登录旧应用程序并使用大量{{1}来触发的用来调用它们的信息。
显然我可以进入旧的应用程序,浏览向导,填写表单,然后单击“值”,然后单步执行代码,以获得重视,查看传入的对象,以及基本上复制那个,然后通过手工去财产完全创建一个新的,但这看起来有点荒谬。
你们对我如何能够实现这个目标有什么想法吗?
非常感谢!
答案 0 :(得分:1)
所以基本上你有一个巨大的模型,它是通过几个步骤创建的。并且您希望从不同的mvc应用程序中获取该模型,而无需将其复制为硬编码。
在这种情况下我会调查的是我如何“模仿/伪造”主应用程序中的步骤,然后发送此模型。
简而言之,我只是将完成的所有步骤合并为1个动作,然后将其返回到您的移动应用程序。您可以使用XML序列化程序,JSON或Web服务执行此操作。移动应用程序然后会向主应用程序发出请求,主应用程序只有一个操作来制作这个默认模型,在主应用程序中应该不那么难。
另外,这样一来,当模型中的某些内容发生变化时,您的应用就可以维护。
答案 1 :(得分:0)
听起来你已经继承了一些真正糟糕的代码:)
由于两个应用程序都在相同的代码库中运行,如何手动创建向导中涉及的MVC控制器并调用为Model
创建默认状态所需的必要操作方法?
您需要模拟一些会话和HTTP上下文对象,这很困难,但听起来它可能比尝试直接模拟模型更容易。
答案 2 :(得分:0)
您可以尝试使用System.Runtime.Serialization.Formatters.Binary.BinaryFormatter 在向导反序列化移动应用程序中的模型后序列化模型。