2013-09-25 23 views
0

我有一個ViewModel,其中包含付款金額等內容。 用戶有能力通過卡或銀行賬戶支付。Viewmodel有2個viewmodel,只有一個需要

我在付款視圖模型中都具有viewmodels。

我想知道如何才能在提交表單時「驗證」一種付款類型viewmodel(卡或銀行)。

我有一個jQuery手風琴的事情,他們可以選擇卡支付或銀行支付,並在選擇後,div展開,並輸入相應的信息。

每個支付類型的div

有Html.BeginForm然後職位,以正確的行動,即:

<div> 
@using (Html.BeginForm("SubmitCardPayment", "Account")) 
{ 
    // submit button here 
} 
</div> 
<div> 
@using (Html.BeginForm("SubmitBankPayment", "Account")) 
{ 
    // submit button here 
} 
</div> 

我做的卡和銀行支付視圖模型做視圖模型實現IValidatableObject那裏有一些驗證。但是我想知道如何才能在此處驗證其中一種付款視圖模型,以及是否存在明顯顯示該錯誤的錯誤,但要確保其他付款視圖模型不受影響,或者在未輸入詳細信息時阻止提交它,因爲兩個付款視圖模型都有必需的屬性。

目前發生的情況是,當提交時,我會傳遞整個視圖模型(因爲父視圖模型包含諸如產品ID,支付金額等等),但隨之而來的是付款方式查看模型

感謝

更新 - 我也注意到在提交的形式任一個,即父視圖模型的數據似乎並沒有與它一起發佈。不知道爲什麼這樣。

回答

0

好了,這似乎工作的解決方案,但沒有它eligent的事情,是這樣的:

創建主母VM包含2種支付類型的子型號。

在表單提交後,以不同的動作,但在一個更具體的視圖模型(基本上父視圖模型+像父母+銀行或父+卡這方面唯一的支付類型視圖模型)

給那麼如果我們有任何驗證錯誤等......我們用2個子模型創建我們的主父虛擬機,映射這些屬性並將其返回給視圖。

這確實很好地工作,但認爲它需要更多的工作。

相關問題