Blazor:OnSubmit:如何访问表单输入值并显示ValidationMessage?
我知道当使用Blazor:OnSubmit:如何访问表单输入值并显示ValidationMessage?,blazor,blazor-client-side,Blazor,Blazor Client Side,我知道当使用OnSubmit处理表单提交时(而不是OnValidSubmit和OnInvalidSubmit),我们负责确保表单有效(通过调用EditContext.Validate()方法) 考虑以下示例代码: <EditForm Model=@Person OnSubmit=@FormSubmitted> <DataAnnotationsValidator/> <ValidationSummary/> <div class="form-g
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
函数中:
我的问题是:
”Name“
”的InputText
的值)(数据绑定是唯一的方法吗?)ValidationMessage
的唯一方法是调用EditContext.Validate()
方法(如果表单确实无效),或者我们可以决定并控制显示哪个ValidationMessage
2) 验证消息本身来自数据模型中的DataAnnotation您面临的问题是由于以下事实:到EditContext.Validate返回时,验证已经发生,并且正在显示验证消息。不幸的是,您对此无能为力,特别是因为您无法访问和操作存储这些消息的ValidationMessageStore对象。Steve Anderson告诉我,如果更多的人(除了我之外)要求这样的功能,就会提供这样的功能。我告诉他这个功能非常重要。。。那是几个月前的事了,你并不是第一个证明这个功能是必不可少的人。您可以转到github,发布一个问题,请求提供此功能 但是,如果您认为不能同时显示所有验证消息(有些人可能会说这是可取的),那么我想您可以实现ValidationMessage组件,只显示您想要的内容 如果我是你,我就不会那样做。通常更希望显示所有需要填写的字段的消息,我猜当用户单击submit按钮时,他们通常会填写大部分字段
希望这有助于 关于#2:我知道验证消息的来源,我想知道是否可以控制在处理函数中显示哪个消息(因为调用
Validate()
将显示所有消息)。感谢分享有关引擎盖下行为的信息;我希望这个功能在下一个版本中可用。我不相信他们没有公开错误消息的键和值。啊