我在Blazor服务器应用程序验证的某个阶段遇到了困难。
有一个上下文模型";订单";。在CRUD操作期间,可以添加新客户或选择现有客户。
第一个InputSelect具有选项New或Existing。根据它,有一个隐藏/显示逻辑,用于显示新客户的输入文本,因此用户可以输入客户名称或显示inputselect,从而用户可以选择现有客户。
这种逻辑在那里运行良好。
问题是:当用户选择New customer并输入客户名称时,我希望从当前EditContext中删除CustomerId模型字段。这意味着,如果正在输入新客户,则无需验证现有客户。
但是,在创建EditContext字段的集合后,我没有找到任何方法或集合来操作它。
所以,请,如果有人有一些解决方案,我很感激。
private class Order
{
[StringLength(maximumLength: 200, MinimumLength = 3,ErrorMessage ="Enter the customer name")]
[Required(ErrorMessage ="Enter the customer name") ]
[Display(Name = "Customer Name")]
public string CustomerName { get; set; } = "";
[Required(ErrorMessage ="Please select the option")]
[Display(Name = "Existing Customer")]
public Int16 ExistingCustomerId { get; set; }
[Required(ErrorMessage ="Please select the customer")]
[Display(Name = "Customer")]
public int? CustomerId { get; set; }
}
根据您的评论,我理解您不希望有两个模型,但这是最简单的方法,它们可以相互继承
public class AddModel {
// all fields except ID here
}
public class EditModel : AddModel {
// just add id property here
}