如何解决blazor页面上的“取消”按钮不回滚更改
我是炽热的初学者。我无法正确处理Back功能。编辑完数据后,返回不还原先前的数据,重新加载页面后将显示正确的数据。如何放弃编辑表单中的更改? 我希望Back从编辑表单返回到数据页面,并且数据应与编辑之前相同。
谢谢!
详细信息已更改。我无法收回它。
@page "/tcdemo"
@using tcDemo.Data
@inject tcDemo.Services.TcDemoService tcDemoService
@inject NavigationManager NavigationManager
<h1>TC Demo</h1>
@if (tcDemos == null)
{
<p><em>Loading...</em></p>
}
else
{
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Details (C)</th>
<th>Id</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach (var tcDemo in tcDemos)
{
<tr>
<td>@tcDemo.Name</td>
<td>@tcDemo.Details</td>
<td>@tcDemo.Id</td>
<td>
<button class="btn btn-primary" @onclick="(() => GoToEdit(tcDemo.Id))">
Edit
</button>
</td>
</tr>
}
</tbody>
</table>
}
@code {
private IList<tcDemo.Data.TcDemo> tcDemos;
protected override async Task OnInitializedAsync()
{
tcDemos = await tcDemoService.GetListAsync();
}
public async Task GoToEdit(Guid id)
{
NavigationManager.Navigateto("/tcdemo/" + id);
//UriHelper.Navigateto("/todo/" + id);
}
}
@page "/tcdemo/{Id:guid}"
@inject NavigationManager NavigationManager
@using tcDemo.Data
@inject tcDemo.Services.TcDemoService tcDemoService
<h1>TC Demo Edit @Id</h1>
@if (tcDemo == null)
{
<p><em>Loading...</em></p>
}
else
{
<EditForm Model="@tcDemo" OnValidSubmit="@Save">
<DataAnnotationsValidator />
<ValidationSummary />
<InputText id="name" @bind-Value="tcDemo.Name" />
<InputText id="details" @bind-Value="tcDemo.Details" />
<button type="submit" class="btn btn-primary">
Submit
</button>
<button type="reset" class="btn btn-primary" @onclick="(() => Back())">
Back
</button>
</EditForm>
}
@code {
[Parameter]
public Guid Id { get; set; }
[Parameter]
public tcDemo.Data.TcDemo tcDemo { get; set; }
[Parameter]
public EventCallback CancelRequest { get; set; }
//private tcDemo.Data.TcDemo tcDemo;
protected override async Task OnInitializedAsync()
{
tcDemo = await tcDemoService.GetAsync(Id);
}
public async Task Save()
{
await tcDemoService.UpdateAsync(tcDemo);
NavigationManager.Navigateto("/tcdemo/");
}
private async Task Back()
{
NavigationManager.Navigateto("/tcdemo/");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。