C# 如何使Blazor的EditForm与数据注释一起工作?
在Blazor WebAssembly中创建新项目后,我只需修改index.razor以创建如下简单的编辑表单:C# 如何使Blazor的EditForm与数据注释一起工作?,c#,validation,blazor,C#,Validation,Blazor,在Blazor WebAssembly中创建新项目后,我只需修改index.razor以创建如下简单的编辑表单: @page "/" @using System.ComponentModel.DataAnnotations @using EditFormValidation.Models <h1>Hello, world!</h1> Welcome to your new app. <SurveyPrompt Title="How
@page "/"
@using System.ComponentModel.DataAnnotations
@using EditFormValidation.Models
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
<EditForm EditContext="context" OnValidSubmit="HandleValidSubmit" OnInvalidSubmit="HandleInvalidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
<InputText @bind-Value="adresse.Adresse1" />
<ValidationMessage For="(() => adresse.Adresse1)" />
<InputText @bind-Value="adresse.Adresse2" />
<ValidationMessage For="(() => adresse.Adresse2)" />
<InputText @bind-Value="adresse.Email" />
<ValidationMessage For="(() => adresse.Email)" />
<button type="submit">Save</button>
</EditForm>
@code{
public class Adresse
{
[Required]
public string Adresse1;
[Required]
public string Adresse2;
[Required]
[EmailAddress]
public string Email;
}
Adresse adresse = new Adresse();
EditContext context;
protected override void OnInitialized()
{
base.OnInitialized();
context = new EditContext(adresse);
}
private void HandleValidSubmit()
{
Console.WriteLine("Submit...");
}
private void HandleInvalidSubmit()
{
Console.WriteLine("Invalid Submit...");
}
}
没有验证摘要,没有消息,当我按Save时会调用HandleValidSubmit。只有输入文本上的样式在文本位于内部时才会变为绿色
我的解决方案首先,删除以下代码:
protected override void OnAfterRender(bool firstRender)
{
base.OnAfterRender(firstRender);
context.Validate();
}
请执行以下操作:
添加方法名HandleValidSubmit,如下所示:
private void HandleValidSubmit()
{
Console.WriteLine("Submit...");
}
每当您单击要添加到EditForm的submit按钮时,就会调用此方法
<button type="submit">Save</button>
希望这有帮助…首先,删除此代码:
protected override void OnAfterRender(bool firstRender)
{
base.OnAfterRender(firstRender);
context.Validate();
}
请执行以下操作:
添加方法名HandleValidSubmit,如下所示:
private void HandleValidSubmit()
{
Console.WriteLine("Submit...");
}
每当您单击要添加到EditForm的submit按钮时,就会调用此方法
<button type="submit">Save</button>
希望这有帮助…模型的成员必须是属性。模型的成员必须是属性。回答很好:我修改了文件,但始终没有显示错误,HandleValidSubmit总是被调用。我发布了完整的修改和解决方案。您的模型类应该为每个属性定义get和set访问器,并且在末尾没有分号。我更新了我的答案以反映这一点。如果它解决了您的问题,您是否介意将其标记为答案,以便其他人知道它是有用的。回答很好:我修改了文件,但始终没有显示错误,HandleValidSubmit总是被调用。我发布了完整的修改和解决方案。您的模型类应该为每个属性定义get和set访问器,并且在末尾没有分号。我已经更新了我的答案以反映这一点。如果它解决了您的问题,您是否介意将其标记为答案,以便其他人知道它是有用的。