【发布时间】:2020-05-12 01:05:31
【问题描述】:
我有一个使用 Blazor 服务器端和 Editform 的 crud 操作。一切都很好,除了我在编辑现有记录后尝试重置表单。
当我更改表单控件中的某些内容然后单击重置按钮时,它会关闭表单。我更改的数据已更新到 HTML 表中,但未在数据库中更新。
有什么办法可以防止这种情况发生吗?
这是我的模型:
public class Address
{
public string province { get; set; }
public string address { get; set; }
public string contact_name { get; set; }
public string phone_number { get; set; }
}
这是我的编辑表单:
<EditForm Model="@model" OnValidSubmit="@HandleValidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="form-group">
<InputText @bind-Value="@model.province" />
</div>
<div class="form-group">
<InputText @bind-Value="@model.contact_name" />
</div>
<div class="form-group">
<InputText @bind-Value="@model.phone_number" />
</div>
<div class="form-group">
<InputText @bind-Value="@model.address" />
</div>
<button type="submit" class="btn btn-primary">Save</button>
<button type="reset" class="btn btn-warning">Cancel</button>
</EditForm>
这是我的 HTML 表格:
@if (address_list== null)
{
<p>Loading</p>
}
else
{
<table class="table table-striped text-center">
<thead>
<tr>
<th scope="col" class="text-center">Province</th>
<th scope="col" class="text-center">Contact Name</th>
<th scope="col" class="text-center">Phone</th>
<th scope="col" class="text-center">Address</th>
<th scope="col" class="text-center">Edit</th>
<th scope="col" class="text-center">Delete</th>
</tr>
</thead>
<tbody>
@foreach (var d in address_list)
{
<tr>
<td>@d.province</td>
<td>@d.contact_person</td>
<td>@d.phone_number</td>
<td>@d.address</td>
<td><button type="button" class="btn btn-link" @onclick="@(() => Edit(d))">Edit</button></td>
<td><button type="button" class="btn btn-link" @onclick="@(() => Delete(d))">Delete</button></td>
</tr>
}
</tbody>
</table>
}
【问题讨论】: