我在使用aspnetcore和dataannotationsvalidation时有个奇怪的行为。我使用的是blazor。
我的模型并没有指定该字段在模型中是必需的。
[Display(Name = "Surname 2")]
[StringLength(Lengths.MaxPeopleNameLenght, MinimumLength = Lengths.MinPeopleNameLenght,
ErrorMessage = "{0} must be between {2} and {1}")]
public string Surname2 { get; set; }
而且是一个简单的blazor视图
<label class="" for="sur2">Nombre 1</label>
<InputText id="sur2" @bind-Value="@_createForm.Surname2"/>
<ValidationMessage For="@(() => _createForm.Surname2)"/>
模型绑定是有效的,没有问题。如果我不在该字段上写任何东西,那么模型是有效的;但如果我写了任何东西,然后删除了内容,该字段就变成了必填字段。
我需要的是,如果该字段为空,那么对应的模型值为空。这就是为什么我不使用 Required 属性的原因。
有什么办法吗?