Моя кнопка AddVerse не запускает функцию AddVerse, когда я нажимаю на нее.
Это моя страница:
@page "/CommentVerse"
@inject IJerusalemBibleService JerusalemBibleService
@inject ICommentService CommentService
@if (ErrorMessage != null)
{
<MudAlert Severity = "Severity.Error">@ErrorMessage</MudAlert>
}
@if (Success)
{
<MudAlert Severity = "Severity.Success">Le commentaire a bien été ajouté!</MudAlert>
}
<EditForm Model = "@model" OnValidSubmit = "OnValidSubmit">
<DataAnnotationsValidator />
<MudGrid>
<MudItem xs = "12" sm = "7">
<MudCard>
<MudCardContent>
<MudTextField T = "string" Label = "Verset(s)" Variant = "Variant.Text" Text = "@model.Verses" @bind-Value = "model.Verses" Lines = "10" Disabled = "true" />
<MudTextField T = "string" Label = "Commentaire" Variant = "Variant.Text" Text = "@model.Comment" @bind-Value = "model.Comment" Lines = "10" />
</MudCardContent>
<MudCardActions>
<MudButton ButtonType = "ButtonType.Submit" Variant = "Variant.Filled" Color = "Color.Primary" Class = "ml-auto">Ajouter</MudButton>
</MudCardActions>
</MudCard>
</MudItem>
<MudItem xs = "12" sm = "5">
<MudPaper Class = "pa-4 mud-height-full">
<MudText Typo = "Typo.subtitle2">Rechercher un verset</MudText>
@if (InProgress)
{
<MudProgressCircular Color = "Color.Primary" Indeterminate = "true" />
}
else
{
<MudSelect @bind-Value = "Book" T = "string" Label = "Livres bibliques">
@foreach (var detailsBook in BiblesBooks.FrenchCatholicBible)
{
<MudSelectItem Value = "@detailsBook.Key"/>
}
</MudSelect>
<MudNumericField Label = "Chapitre" @bind-Value = "Chapter" Min = "1" Max = "1000" />
<MudNumericField Label = "Premier Verset" @bind-Value = "FirstVerse" Min = "1" Max = "1000" />
<MudNumericField Label = "Dernier Verset" @bind-Value = "LastVerse" Min = "1" Max = "1000" />
}
<MudButton @OnClick = "@(() => AddVerse())" Variant = "Variant.Filled" Color = "Color.Primary" Class = "mt-2">Sélectionner le(s) verset(s)</MudButton>
</MudPaper>
</MudItem>
</MudGrid>
</EditForm>
@code {
CommentDto model = new CommentDto();
bool Success = false;
string Book { get; set; }
int Chapter { get; set; } = 1;
int FirstVerse { get; set; } = 1;
int? LastVerse { get; set; } = null;
string? ErrorMessage { get; set; } = null;
bool InProgress { get; set; } = false;
public int IntValue { get; set; }
private void OnValidSubmit(EditContext context)
{
try
{
CommentService.Add(model);
Success = true;
}
catch (Exception ex)
{
ErrorMessage = ex.Message;
Success = false;
}
StateHasChanged();
}
private void AddVerse()
{
InProgress = true;
try
{
model.Verses += JerusalemBibleService.GetVerse(Book, Chapter, FirstVerse, LastVerse);
}
catch (Exception ex)
{
ErrorMessage = ex.Message;
}
InProgress = false;
}
}
В моем основном макете я поместил тег Provider и в App .razor, я поставил режим рендеринга маршрутов на InteractiveServer. Да, я нахожусь на сервере Blazor и использую MudBlazor.
Вот мне и интересно, не про ли все это дело в рендеринге, но не должно, ведь я указал, что режим рендеринга — интерактивный сервер. Я в .net 8, если вы тоже хотите знать.
Итак, почему AddVerse не запускается? Я имею в виду, нет причин, почему этого не должно быть!?
OnClick
— это параметр события для кнопок MudBlazor, а @onclick
— атрибут директивы razor для событий кликов HTML.
Пробовали ли вы использовать «OnClick» вместо «@OnClick»?