2014-11-06 135 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