首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blazor -表单验证无法读取

Blazor -表单验证无法读取
EN

Stack Overflow用户
提问于 2021-04-23 08:27:35
回答 1查看 44关注 0票数 0

我有一个简单的Blazor表单。当我运行应用程序时,如果我在字段中输入并按submit,那么我就会得到"field is required"。我不知道为什么。如果我打开我的记事本,输入一些单词,然后将它们复制并粘贴到字段中,那么它就可以正常工作。这是Blazor在调试模式下的bug,还是我做错了什么?

代码语言:javascript
复制
@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();
    } }
EN

回答 1

Stack Overflow用户

发布于 2021-04-23 18:07:37

回答你的问题

这是Blazor在调试模式下的错误,还是我做错了什么?“

我恭敬地建议,如果是前者,它很久以前就会被发现。

因此,这是您的测试页面的一个稍微不同的版本-它现在是自包含的,并定义了PersonModel -而且,它的工作方式正如广告所说的那样。

代码语言:javascript
复制
@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吧。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67222452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档