ОК, я новичок в Blazor, и я пытаюсь изменить значение, установленное на элемент управления вводом. Когда я меняю значение, он сбрасывает его обратно к тому, что было до того, как я его изменил. Вот мой код: < /p>
@page "/movies/edit"
@rendermode InteractiveServer
@using Microsoft.EntityFrameworkCore
@using BlazorWebAppMovies.Models
@using BlazorWebAppMovies.Data
@inject IDbContextFactory DbFactory
@inject NavigationManager NavigationManager
Edit
Edit
Movie
@if (Movie is null)
{
Loading...
}
else
{
Title:
Release Date:
Genre:
Price:
Rating:
Movie Star Rating:
@foreach (var movieStarRating in StarRatings)
{
@if (movieStarRating.Id != 0)
{
if (movieStarRating.Id == Movie.MovieStarRatingId)
{
@movieStarRating.Descr
}
else
{
@movieStarRating.Descr
}
}
}
Save
}
Back to List
@code {
private BlazorWebAppMoviesContext context = default!;
[SupplyParameterFromQuery]
private int Id { get; set; }
[SupplyParameterFromForm]
private Movie? Movie { get; set; }
private IList StarRatings { get; set; } = [];
protected override async Task OnInitializedAsync()
{
using var context = DbFactory.CreateDbContext();
Movie ??= await context.Movie.FirstOrDefaultAsync(m => m.Id == Id);
if (Movie is null)
{
NavigationManager.NavigateTo("notfound");
}
StarRatings = await context.MovieStarRating.ToListAsync();
}
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more information, see https://learn.microsoft.com/aspnet/core ... ng-attacks.
private async Task UpdateMovie()
{
using var context = DbFactory.CreateDbContext();
context.Attach(Movie!).State = EntityState.Modified;
try
{
await context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!MovieExists(Movie!.Id))
{
NavigationManager.NavigateTo("notfound");
}
else
{
throw;
}
}
NavigationManager.NavigateTo("/movies");
}
private bool MovieExists(int id)
{
using var context = DbFactory.CreateDbContext();
return context.Movie.Any(e => e.Id == id);
}
}
< /code>
Я уверен, что это, вероятно, что -то простое, но, как я говорю, я новичок в Blazor здесь. Я играл с ним с этим с тех пор, как собираюсь разработать новое веб -приложение, используя его, и я также пытаюсь улучшить свои навыки здесь. Что происходит в течение секунды, так это то, что значение в раскрывающемся списке изменяется на 3 звезды, а значение не обновляется в базе данных (ну, я думаю, это так и делает, но это то же значение, поскольку оно каким -то образом возвращается к этому в «Отправить щелчок»).
Подробнее здесь: https://stackoverflow.com/questions/794 ... back-to-th
При изменении значения в входе в Blazor - он сбрасывает значение обратно к предыдущему выбранному значению при отправке. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
CakePHP: автоматический поиск по заранее выбранному значению раскрывающегося списка.
Anonymous » » в форуме Php - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-