序列化模型数据

时间:2014-11-06 20:36:43

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

  

修改

我正在开展一个项目,试图预先批准客户的信用卡。这个应用程序

  1. 从另一个传递有关客户信息的应用程序调用
  2. 使用wcf服务,该服务将执行各种操作,包括调用第三方Web服务以获得实际的信用审批
  3. 这个新系统正在使用ASP.NET MVC开发,我非常新。

    所以,我有最初的工作,我可以将特定数据传递给这个mvc应用程序并将信用结果显示给视图。

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

    好的,所以这一切都有效。

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

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

    初始控制器简称为Index

    [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 个答案:

答案 0 :(得分:1)

MVC Dll:

如果在使用引用管理器时找不到dll,则听起来MVC可能没有正确安装,因为它们应该包含在Framework引用中。这是我的VS RM中显示的内容

我建议您使用Visual Studio

中内置的nuget package manager来安装MVC

enter image description here

跨控制器保留数据:

这是一个独立的主题,有各种方法。这取决于许多因素,例如您希望数据持续多长时间等等。

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

序列化数据:

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