Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

Validation rules are met but Blazorise doesn't think so

$
0
0

I want to do a register page using Blazor Server + Blazorise for UI. In my RegisterUserDto class i have fields with data annotations that should be displayed in UI:

public class RegisterUserDto{    [Required(ErrorMessage = "User name is required")]    public string UserName { get; set; } = string.Empty;    [Required(ErrorMessage = "Email is required")]    [EmailAddress(ErrorMessage = "Invalid email format")]    public string Email { get; set; } = string.Empty;    [Required(ErrorMessage = "Password is required")]    [MinLength(6, ErrorMessage = "Password must be at least 6 characters")]    [DataType(DataType.Password)]    public string Password { get; set; } = string.Empty;}

Blazor page:

@page "/register"@using Application.Services@using Domain.DTOs@inject IUserService UserService@inject NavigationManager NavigationManager<h3>Register</h3><Validations Mode="ValidationMode.Auto" Model="@_registerUserDto" ValidateOnLoad><Validation><Field><FieldLabel RequiredIndicator>User Name</FieldLabel><FieldBody><TextEdit @bind-Text="@_registerUserDto.UserName"><Feedback><ValidationError /></Feedback></TextEdit></FieldBody></Field></Validation><Validation><Field><FieldLabel RequiredIndicator>Email</FieldLabel><FieldBody><TextEdit @bind-Text="@_registerUserDto.Email" Role="@TextRole.Email" InputMode="TextInputMode.Email"><Feedback><ValidationError /></Feedback></TextEdit></FieldBody></Field></Validation><Validation><Field><FieldLabel RequiredIndicator>Password</FieldLabel><FieldBody><TextEdit @bind-Text="@_registerUserDto.Password" Role="@TextRole.Password"><Feedback><ValidationError /></Feedback></TextEdit></FieldBody></Field></Validation><Field><Button Type="@ButtonType.Submit" Color="Color.Primary" Loading="_isLoading">Register</Button></Field></Validations>@code {    readonly RegisterUserDto _registerUserDto = new();    bool _isLoading = false;    private async Task RegisterUser()    {        _isLoading = true;        var result = await UserService.CreateAsync(_registerUserDto);        _isLoading = false;        if (result)        {            NavigationManager.NavigateTo("/login");        }        else        {            //TODO        };    }}

Problem is that Blazor knows about data annotations but doesn't seem to check the values inside TextEdit and compare them to validation rules:error im talking about

Read docs, tried to do exactly as said, didn't work


Viewing all articles
Browse latest Browse all 4839

Trending Articles