2014-11-06 93 views
0

编辑序列化模型数据

我工作的一个项目,将设法预先核准的客户办理了一张信用卡。此应用程序

  1. 是从通过对客户
  2. 消耗WCF服务,会做各种各样的事情,包括调用第三方Web服务的实际信贷审批

此信息的不同应用程序调用新系统正在开发使用ASP.NET MVC,我非常新。

所以,我有第一块工作,我可以传递特定的数据到这个mvc应用程序,并显示信贷结果到一个视图。

此时,如果客户获得批准,用户或者需要指出客户是否想接受要约。如果他们这样做,那么用户需要指出客户需要的信用卡产品中的哪一种。如果他们想要生成ACH付款等。如果客户拒绝了该提议,则用户必须选择拒绝原因。

好吧,所有这一切都可以发挥作用。

我的问题在于如果验证失败怎么办。如果有条件验证属性,我已经指定了几个必需的。如果用户忘记选择信用卡产品,那么如果客户接受了该提议,则该条款验证将失败。在这些罕见的,但可以想象的情况下,我需要发送信用结果,其中包括提供的卡产品,拒绝原因,客户名称等。

所以我真正需要了解的是如何发送信用回复数据备份到我用于决策信息的控制器。

初始控制器被简单地称为索引

[HttpPost] 
public ViewResult Index (PrescreenCCRequest request) 
{ 
    WCFClient client = new WCFClient (); 

    PrescreenCCResult result = client.ProcessPrescreen (request); 

    return View (result); 
} 

此控制器在视图中我定义了一个形式用于各种用户选项

@using (Html.BeginForm ("Save", "Prescreen", FormMethod.Post)) 
{ 
    ...Control definitions left out... 
} 

最后,控制器为“保存”操作:

[HttpPost] 
public ActionResult Save (PrescreenModel formData) 
{ 
    if (!ModelState.IsValid) 
    { 
     return View ("~/Views/Prescreen/Index.cshtml", formData); 
    } 

    ... Additional Code left out ... 
    return View (); 
} 

这就是我正在努力的方向

回答

1

MVC DLL:

如果使用这听起来像MVC可能没有正确安装,他们应该被包含在框架引用引用管理器时,你无法找到DLL。这里是我的VS RM什么显示

我建议你看一下使用内置到Visual Studio

enter image description here

保存数据在整个控制器的nuget package manager安装MVC:

这是一个这个话题本身就有很多种方法。这取决于很多因素,例如您想要数据持续多长时间等等。

如果存在持久性的数据相当短暂,我将在跨请求访问时使用Session对象或TempData对象。

序列化数据:

数据是什么格式?如果是在Json中,我会推荐使用NewtonSoft,因为这有一个非常灵活的对象序列化器/反序列化器,可用于验证对象数据到自定义数据模型中。

+0

感谢您的信息。我意识到我在那里混淆了几个问题。道歉。从持久性角度来看,从初始控制器发送的原始数据只需要在验证成功之前挂起。我们的一些用户可能需要尝试几次。如果这似乎是TempData可以接受的,那么我可以研究它。从序列化的角度来看,数据是一个类,而不是JSON。我真的在寻找一种简单的方式将视图的初始模型以及“编辑”模型发送回控制器,该控制器将根据我必须作出的假设来保存“编辑”数据 – 2014-11-06 21:12:05

+1

@PaulStoner。假设你正在使用WCF服务。我建议您直接验证服务类,因为服务引用元数据将提供您编写任何验证逻辑所需的信息。我不确定为什么需要将数据传递给另一个控制器,因为我个人将验证逻辑从控制器中抽离出来,并在同一控制器中返回验证错误或异常,甚至更好 - 方法调用。请提供尽可能多的信息,我可以举一个例子。请记住注册。谢谢 – geekonedge 2014-11-06 21:19:55

+0

博斯曼,谢谢。我很乐意赞扬,但我还没有足够的代表。我将编辑我的问题以提供所需的信息。 – 2014-11-06 21:48:42