C# 序列化模型数据

C# 序列化模型数据,c#,asp.net,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc 5,编辑 我正在做一个项目,将尝试预先批准客户的信用卡。此应用程序 从不同的应用程序调用,传递有关客户的信息 使用wcf服务,该服务将执行各种操作,包括调用第三方web服务以获得实际的信贷批准 这个新系统是使用ASP.NETMVC开发的,我对它非常陌生 因此,我有了最初的工作,我可以将特定的数据传递给这个mvc应用程序,并将信用结果显示给一个视图 此时,如果客户获得批准,则用户需要指出客户是否愿意接受该报价。如果他们这样做了,那么用户需要指出客户想要四种信用卡产品中的哪一种。如果他们想要生成ACH付

编辑

我正在做一个项目,将尝试预先批准客户的信用卡。此应用程序

  • 从不同的应用程序调用,传递有关客户的信息
  • 使用wcf服务,该服务将执行各种操作,包括调用第三方web服务以获得实际的信贷批准
  • 这个新系统是使用ASP.NETMVC开发的,我对它非常陌生

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

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

    好的,所有这些都起作用了

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

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

    初始控制器简称为索引

    [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...
    }
    
    最后,“保存”操作的控制器:

    这就是我正在努力实现的MVC Dll:

    如果在使用引用管理器时找不到dll,那么MVC可能没有正确安装,因为它们应该包含在框架引用中。以下是我的VS RM中显示的内容

    我建议您考虑使用内置在VisualStudio中的安装MVC

    跨控制器持久化数据:

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

    如果存在持久性数据,那么在跨请求访问它时,我会使用会话对象或TempData对象

    序列化数据:


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

    感谢提供的信息。我意识到我把几个问题弄糊涂了。道歉。从持久性的角度来看,从初始控制器发送下来的原始数据只需要挂起,直到验证成功。我们的一些用户可能需要几次尝试。如果这对TempData来说是可以接受的,那么我可以对此进行研究。从序列化的角度来看,数据是一个类,而不是JSON。我真的在寻找一种简单的方法,将视图的初始模型连同“编辑”模型一起发送回一个控制器,该控制器将保存“编辑”data@PaulStoner根据这些信息,我必须做出假设。假设您正在使用的是WCF服务。我建议您直接验证服务类,因为服务引用元数据将提供编写任何验证逻辑所需的信息。我不知道为什么您需要将数据传递给另一个控制器,因为我个人会将验证逻辑从控制器中抽象出来,并在同一个控制器或更好的方法调用中返回验证错误或异常。请提供尽可能多的信息,我可以举个例子。请记得投票。谢谢奥斯曼,谢谢你。我很想投票,但我还没有足够的代表权。我将编辑我的问题以提供所需信息。
    [HttpPost]
    public ActionResult Save ( PrescreenModel formData )
    {
        if ( !ModelState.IsValid )
        {
            return View ( "~/Views/Prescreen/Index.cshtml", formData );
        }
    
        ... Additional Code left out ...
        return View ( );
    }