J'essaie donc de déclencher la validation du modèle dans Blazor en utilisant EditForm
Pour une raison quelconque, l'événement oninput ne semble pas être appelé si vous utilisez InputText, lorsque vous utilisez un élément d'entrée simple, cela fonctionne comme prévu.
Ai-je raté quelque chose?
Voici un exemple html que j'utilise
<EditForm Model="@Model" OnValidSubmit="@OnValidSubmit" id="authorize">
<h1 class="mb-3">
<span class="d-block">Authorize</span>
</h1>
<DataAnnotationsValidator />
<div class="form-group">
<label class="sr-only" for="AuthorizeUsername">Username</label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text"><i class="fas fa-user"></i></div>
</div>
<InputText type="text" class="form-control" id="AuthorizeUsername" placeholder="Username" @bind-value="@Model.Username" @bind-value:event="oninput" />
</div>
</div>
<div class="form-group">
<label class="sr-only" for="AuthorizePassword">Password</label>
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text"><i class="fas fa-asterisk"></i></div>
</div>
<InputText type="password" class="form-control" id="AuthorizePassword" placeholder="Password" @bind-value="@Model.Password" @bind-value:event="oninput" />
</div>
</div>
<div class="form-group">
<ValidationSummary />
<button type="submit" class="btn btn-outline-primary"><i class="fas fa-sign-in-alt mr-1"></i> Login</button>
</div>
</EditForm>
Il fonctionne sur une simple entrée car vous vous liez à l'attribut html "value".
InputText est une classe C #. Le nom de propriété auquel vous devez vous lier est Value
avec un V majuscule.
Change tout @bind-value
occurrences à @bind-Value
et ça devrait marcher.