I am using blazor server side for one of my project , petty new to me . I am stuck at very first screen, the login screen.
Below is my razor component html
<div class="row vh-100 align-items-center justify-content-center"><div class="col-sm-8 col-md-6 col-lg-4 bg-white rounded p-4 shadow"><div class="row justify-content-center mb-4"><img src="Images/AQuity.png" class="w-50 h-50" /></div><form><div class="mb-4"><label for="email" style="text-align:left" class="form-label label-left w-100">Email Address</label><input type="email" class="form-control form-control-sm" id="email" @bind=@_credential.Email /></div><div class="mb-4"><label for="password" style="text-align:left" class="form-label label-left w-100">Password</label><input type="password" class="form-control form-control-sm" id="password" @bind=@_credential.Password /></div><button class="btn btn-warning btn-sm w-100" @onclick=Authenticate>Login</button></form><p class="mb-0 mt-2 text-center">Forgot Password? <a href="#" class="text-decoration-none">Reset Now!</a></p> @if (!_result.Success) {<p class="text-danger">@msg</p> }</div>my code behind partial class
public partial class Login { [Inject] protected IAuthenticateService _authenticateService { get; set; } [Inject] protected NavigationManager Navigation { get; set; } = default!; private Credential _credential { get; set; } = new Credential(); private ResultSet _result { get; set; } = new ResultSet(); public string msg = string.Empty; private void Authenticate() { _result = _authenticateService.Authenticate(_credential); if (_result.Success) { Navigation.NavigateTo(""); } else { msg = "new error !"; this.StateHasChanged(); } } }On below method
private void Authenticate(){ _result = _authenticateService.Authenticate(_credential); if (_result.Success) { Navigation.NavigateTo(""); } else { msg = "new error !"; this.StateHasChanged(); }}in else block if _result.Success is false it will contain a error message in msg field
and that is set to display on html part as
@if (!_result.Success){<p class="text-danger">@msg</p>}But even after calling this.StateHasChanged(); , that component is not re rendering.How to achieve this in blazor ? on failed login to show msg on component
This is server side blazor on .net 8.0