При изменении значения в входе в Blazor - он сбрасывает значение обратно к предыдущему выбранному значению при отправке.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 При изменении значения в входе в Blazor - он сбрасывает значение обратно к предыдущему выбранному значению при отправке.

Сообщение Anonymous »

ОК, я новичок в 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»