Blazor验证不支持单个字段验证,它仅一次验证上下文中的所有字段。如果我一次在分开的选项卡或步进器中加载页面,则部分验证控件,而不是部分字段。可能吗?请给我解决方案。但是我在jQuery中通过$('#ShippingInfo')。validate()。element('#ShippingAddress_StateID');
但是当按下提交按钮时,blazor会验证所有字段。
例如
我有一个使用步进器组件的类似向导的模块(可能是4个步骤)。在这里,第一步具有一组控件,例如客户详细信息,第二步具有一组控件,例如获取联系人详细信息,等等。所有控件都与带有注释的一个模型类相对应,但使用stepper组件通过“下一步”按钮逐步进行验证。我该如何实现?
答案 0 :(得分:0)
选项1
将视图模型分为几个子模型“ MySubmodel1”,“ MySubmodel2”等。
然后,以类似于向导的形式,具有多个<EditForm>
元素,每个元素都指定对应的子模型,即。在第一个<EditForm>
集Model = @ MySubmodel1中,在第二个<EditForm>
集Model = @ MySubmodel2中,依此类推。
选项2
此选项基于视图模型的条件验证。对于完整的类似向导的表单,您将只使用1个viewmodel。在视图模型中添加一个属性“ StepNumber”,该属性将标识当前步骤(步骤1,步骤2,...),并根据实际步骤定义相应字段的条件验证。
这可以实现,例如。
或
最后,在您的表单中,处理上一步/下一步按钮时调整当前步骤。