我有一个 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、支付金额等内容......)但随之而来的是两种支付类型的视图模型
谢谢
更新- 我还注意到在提交任一表单时,父视图模型的数据似乎并没有随它一起发布。不知道为什么会这样。