I'm building a form in a Blazor Server (.NET 8) app to add a new asset. I have an EditForm bound to a CreateAssetRequest model, but when I submit the form, the createAssetRequest object is still empty (its properties are not populated). Here's the code:
@page "/AddAsset"@inject ICreateAssetUseCase CreateAssetUseCase@inject NavigationManager NavigationManager<h3>Add Asset</h3><div class="row"><div class="col col-12 col-lg-6"><EditForm Model="@createAssetRequest" OnValidSubmit="@HandleValidSubmit" FormName="AddAssetForm"><DataAnnotationsValidator /><ValidationSummary /><div class="mb-3"><label for="name" class="form-label">Name</label><InputText id="name" class="form-control" @bind-Value="createAssetRequest.Name" /><ValidationMessage For="@(() => createAssetRequest.Name)" /></div><div class="mb-3"><label for="description" class="form-label">Description</label><InputText id="description" class="form-control" @bind-Value="createAssetRequest.Description" /><ValidationMessage For="@(() => createAssetRequest.Description)" /></div><button type="submit" class="btn btn-primary">Add Asset</button></EditForm></div></div>@code { private CreateAssetRequest createAssetRequest = new(); private async Task HandleValidSubmit() { await CreateAssetUseCase.ExecuteAsync(createAssetRequest); NavigationManager.NavigateTo("/Assets"); }}Model:
namespace Loggerv2.UseCases.Assets.Requests{ public class CreateAssetRequest { public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; }}I expected the createAssetRequest object to be populated with the values from the form fields when the form is submitted, but both Name and Description remain empty strings.
What am I missing?