第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ASP.NETMVC中的多步驟注冊過程問題(拆分視圖模型,單個模型)

ASP.NETMVC中的多步驟注冊過程問題(拆分視圖模型,單個模型)

www說 2019-07-13 18:47:03
我有一個多步注冊過程,由一個域?qū)又械膯蝹€對象,它們具有在屬性上定義的驗證規(guī)則。當域被分割到多個視圖時,我應該如何驗證域?qū)ο?,并且在發(fā)布時必須在第一個視圖中部分保存該對象?我考慮過使用會話,但這是不可能的,因為這個過程很長,數(shù)據(jù)量很大,所以我不想使用會話。我考慮將所有數(shù)據(jù)保存在內(nèi)存中的關系數(shù)據(jù)庫中(使用與主db相同的模式),然后將數(shù)據(jù)刷新到主db,但是出現(xiàn)了一些問題,因為我應該在使用主db和內(nèi)存中數(shù)據(jù)庫的服務(視圖中請求)之間路由。我正在尋找一個優(yōu)雅而干凈的解決方案(更準確地說是一個最佳實踐)。更新和澄清:達林,謝謝你周到的回答,這正是我到現(xiàn)在為止所做的。但順便提一句,我有一個包含很多附件的請求,我設計了一個Step2View例如,哪個用戶可以異步地上傳文檔,但是這些附件應該保存在一個表中,該表與之前應該保存的另一個表具有引用關系。Step1View.因此,我應該將域?qū)ο蟊4嬖赟tep1(部分),但我不能,因為部分映射到步驟1的視圖模型的支持核心域?qū)ο鬅o法保存,沒有轉(zhuǎn)換的道具Step2ViewModel.
查看完整描述

3 回答

?
SMILET

TA貢獻1796條經(jīng)驗 獲得超4個贊

我建議您使用jQuery在客戶機上維護完整流程的狀態(tài)。

例如,我們有一個三步向?qū)нM程。

  1. 提供了步驟1的用戶有一個標記為“Next”的按鈕。
  2. 在單擊Next時,我們發(fā)出一個Ajax請求,并創(chuàng)建一個名為Step 2的DIV,并將HTML加載到該DIV中。
  3. 在步驟3中,我們在點擊按鈕時有一個標記為“已完成”的按鈕,使用$.post Call發(fā)布數(shù)據(jù)。

通過這種方式,您可以輕松地從表單POST數(shù)據(jù)構(gòu)建域?qū)ο?,如果?shù)據(jù)有錯誤,返回有效的JSON,保存所有錯誤消息并在div中顯示它們。

請把臺階分開

public class Wizard {
  public Step1 Step1 {get;set;}
  public Step2 Step2 {get;set;}
  public Step3 Step3 {get;set;}}public ActionResult Step1(Step1 step){
  if(Model.IsValid)
 {
   Wizard wiz = new Wizard();
   wiz.Step1 = step;
  //Store the Wizard in Session;
  //Return the action
 }}public ActionResult Step2(Step2 step){
 if(Model.IsValid)
 {
   //Pull the Wizard From Session
   wiz.Step2=step;
 }}

以上只是一個幫助你達到最終結(jié)果的演示。在最后一步中,您必須創(chuàng)建域?qū)ο蟛腤izard對象中填充正確的值并將其存儲到數(shù)據(jù)庫中。


查看完整回答
反對 回復 2019-07-13
  • 3 回答
  • 0 關注
  • 471 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號