我知道当使用 OnSubmit
用于处理表单提交(而不是 OnValidSubmit
和 OnInvalidSubmit
),我们负责确保表单有效(通过调用 EditContext.Validate()
方法)。)
考虑以下示例代码。
<EditForm Model=@Person OnSubmit=@FormSubmitted>
<DataAnnotationsValidator/>
<ValidationSummary/>
<div class="form-group">
<label for="Name">Name</label>
<InputText @bind-Value=Person.Name class="form-control" id="Name" />
<ValidationMessage For="() => Person.Name"/>
</div>
<input type="submit" class="btn btn-primary" value="Save"/>
</EditForm>
现在假设我们在 FormSubmitted
function:我的问题是。
InputText
与id。"Name"
) (数据绑定是唯一的方式吗?)ValidationMessage
是叫 EditContext.Validate()
方法(如果表单确实无效),或者我们可以决定并控制哪个 ValidationMessage
来显示?你所面临的问题是由于在EditContext.Validate返回的时候,验证已经发生,并且验证信息正在显示。不幸的是,你对此无能为力,尤其是因为你无法访问和操作存储这些消息的ValidationMessageStore对象。Steve Anderson告诉我,如果有更多的人(除了我之外)要求提供这样的功能,就会提供。我告诉他,这个功能非常重要......这是几个月前的事了,你不是第一个表明这个功能是必不可少的人。你可以去github上发布一个问题,要求提供这个功能。
然而,如果你认为你不能忍受所有的验证信息同时显示(有些人可能会说这是可取的),我想你可以实现ValidationMessage组件来显示你想要的内容。
如果我是你,我不会这么做。通常情况下,显示所有需要填写的字段的消息是比较可取的,我想当用户点击提交按钮时,他们通常会填写大部分的字段。
希望能帮到你...
1)是的模型绑定是方法2)验证消息本身来自于数据模型中的dataannotations。