我有一个简单的Blazor表单。当我运行应用程序时,如果我在字段中输入并按submit,那么我就会得到"field is required"。我不知道为什么。如果我打开我的记事本,输入一些单词,然后将它们复制并粘贴到字段中,那么它就可以正常工作。这是Blazor在调试模式下的bug,还是我做错了什么?
@page "/" @using SBShared.Models @using SBSender.Services @inject IQueueService queue
<h1>Hello, world!</h1>
Welcome to your new app.
<EditForm Model="@person" OnValidSubmit="@PublishMessage">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="form-group">
<label for="firstName">First Name</label>
<InputText id="firstName" class="form-control" @bind-Value="person.FirstName" />
</div>
<div class="form-group">
<label for="lastName">Last Name</label>
<InputText id="lastName" class="form-control" @bind-Value="person.LastName" />
</div>
<button type="submit" class="btn btn-primary">Submit</button> </EditForm>
@code{
private PersonModel person = new PersonModel();
private async Task PublishMessage()
{
await queue.SendMessageAsync(person, "personqueue");
person = new PersonModel();
} }发布于 2021-04-23 18:07:37
回答你的问题
这是Blazor在调试模式下的错误,还是我做错了什么?“
我恭敬地建议,如果是前者,它很久以前就会被发现。
因此,这是您的测试页面的一个稍微不同的版本-它现在是自包含的,并定义了PersonModel -而且,它的工作方式正如广告所说的那样。
@page "/PersonTest"
<h3>PersonTest</h3>
<h1>Hello, world!</h1>
Welcome to your new app.
<EditForm Model="@person" OnValidSubmit="@PublishMessage">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="form-group">
<label for="firstName">First Name</label>
<InputText id="firstName" class="form-control" @bind-Value="person.FirstName" />
</div>
<div class="form-group">
<label for="lastName">Last Name</label>
<InputText id="lastName" class="form-control" @bind-Value="person.LastName" />
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</EditForm>
@code{
private PersonModel person = new PersonModel();
private async Task PublishMessage()
{
await Task.Delay(1000);
person = new PersonModel();
}
public class PersonModel
{
[Required] public string FirstName { get; set; }
public string LastName { get; set; }
}
}你可以在here on my test site上看到它的工作原理。
在上面的代码中,我向FirstName添加了一个Required属性。您需要检查PersonModel中的字段具有哪些属性。"field is required“也应该告诉你是哪个字段。
如果你被卡住了,那就发一份PersonModel吧。
https://stackoverflow.com/questions/67222452
复制相似问题