Ful*_*ime 2 javascript c# razor twitter-bootstrap asp.net-core
我正在使用 Razor Pages,当用户单击删除按钮时,似乎很难显示确认消息。
在我的 Index.cshtml 上,我有:
<a asp-page-handler="Delete" asp-route-id="@item.Id" id="deleteBtn" class="btn bg-danger mr-1"><i class="fas fa-trash-alt text-white"></i></a>
Run Code Online (Sandbox Code Playgroud)
这些是作为 foreach 循环的一部分生成的。
我的删除方法:
public async Task<IActionResult> OnGetDelete(Guid id)
{
if (id == null)
{
return NotFound();
}
var record = await _context.LoadTable.FindAsync(id);
if (record != null)
{
_context.LoadTable.Remove(record);
await _context.SaveChangesAsync();
}
return RedirectToPage("./Index");
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 Bootstrap,所以理想情况下希望使用它的模态来显示消息。显示消息不是问题,而是我需要停止触发该方法,直到用户确认这是他们想要做的事情,而使用 Razor Pages,我似乎在挣扎。
我的想法是在模态中有删除按钮,而删除按钮显示的是模态,但我不确定如何通过它传递 @item.Id。
或者使用 JavaScript 拦截按钮点击?
我认为出于安全原因,最好将按钮放入 aform以执行操作DELETE
使用这种方法,您可以尝试:
<form asp-page-handler="Delete" method="OnGetDelete" asp-route-id="@item.Id"
onclick="return confirm('Are you sure you want to delete this?')">
<button type="submit" class="btn btn-default"><i class="fas fa-trash-alt text-white"></i></button>
</form>
Run Code Online (Sandbox Code Playgroud)
您可以为数据目标属性指定不同的值,并为引导模式指定不同的模式ID,请参阅我的示例演示:
索引.cshtml
@foreach (var item in Model.Cars)
{
var tm = "#myModal" + item.Id;
var mid = "myModal" + item.Id;
<tr>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
<a asp-page="./Edit" asp-route-id="@item.Id">Edit</a> |
<a asp-page="./Details" asp-route-id="@item.Id">Details</a> |
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="@tm">
Delete
</button>
<div class="modal fade" id="@mid" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Delete Confirmation</h4>
</div>
<div class="modal-body">
Are you sure want to delete this item?
</div>
<div class="modal-footer">
<a asp-page-handler="Delete" asp-route-Id="@item.Id" id="deleteBtn" class="btn bg-danger mr-1">Delete</a>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7907 次 |
| 最近记录: |