C# 获取表格单元格值并提交给删除函数
我有一个显示数据库数据的表。我想提供一个按钮,根据所选行从表中删除数据。具体基于该表特定单元格的值 我曾尝试将表单元素中的一个按钮包装为每行中的一个额外元素,但这似乎不起作用,原因有二。1,它在我的控制器中触发OnGet()函数;2,它似乎没有将单元格数据值绑定到我的“SourceTable”属性 以下是我的前端表格:C# 获取表格单元格值并提交给删除函数,c#,asp.net-core,razor,razor-pages,C#,Asp.net Core,Razor,Razor Pages,我有一个显示数据库数据的表。我想提供一个按钮,根据所选行从表中删除数据。具体基于该表特定单元格的值 我曾尝试将表单元素中的一个按钮包装为每行中的一个额外元素,但这似乎不起作用,原因有二。1,它在我的控制器中触发OnGet()函数;2,它似乎没有将单元格数据值绑定到我的“SourceTable”属性 以下是我的前端表格: <table class="table"> <thead> <tr> <td>Or
<table class="table">
<thead>
<tr>
<td>OrderIdentifier</td>
<td>Step Number</td>
<td>CreateDate</td>
<td>Step Status</td>
<td>Source Table</td>
</tr>
</thead>
@foreach (var order in Model.order.Steps)
{
<tr>
<td>@order.OrderIdenfitier</td>
<td>@order.Name</td>
<td>@order.CreateDate</td>
<td>@order.StepStatus</td>
<td>@order.SourceTable</td>
<td>
<a class="btn btn-dark"
asp-page="./OrderDetail"
asp-route-orderId="@order.OrderIdenfitier">
<i class="glyphicon glyphicon-zoom-in"></i>
Details
</a>
</td>
<td>
<form method="delete">
<input type="hidden" class="form-control" asp-for="SourceTable" />
<button type="submit" class="btn btn-dark">
<i class="glyphicon glyphicon-zoom-in"></i>
Delete
</button>
</form>
</td>
</tr>
}
我希望将SourceTable单元格的值传递给我的OnDelete函数,但没有这样做。此外,我的“OnGet()”函数是在单击删除按钮时触发的,而不是“OnDelete()”函数。我嵌入按钮的I表单具有action=“delete”,因此我认为它将转到OnDelete()函数,但情况似乎并非如此。
delete
方法当前由
元素执行。这就是为什么在Razor页面中点击OnGet()
。为此,您仍然可以使用OnPost()
将表单值(例如隐藏输入)绑定到操作方法参数
第二个问题是您的asp for
输入标记帮助程序。默认情况下,它根据PageModel
计算其表达式。您可以使用@
来覆盖该行为,尤其是当您正在使用时。您的表单可以如下所示:
行动方法:
public IActionResult OnPost(string SourceTable)
{
// delete record here
return RedirectToPage();
}
也许您不喜欢删除OnPost
处理程序中的记录,您希望保留这些记录以用于其他操作。然后您可以使用likeOnPostDelete(string SourceTable)
。您只需将属性asp page handler=“delete”
添加到
元素:
也许你不喜欢表格中每一行都有一个单独的表单。然后将表单环绕表格,并在每个删除按钮上使用asp-route-
前缀指定参数绑定:
@foreach(Model.order.Steps中的变量顺序)
{
}
你可以在文章中找到更多有价值的信息。谢谢,就这样。我不知道.net核心的命名处理程序是否可用。结果证明这正是我需要的。
public IActionResult OnPost(string SourceTable)
{
// delete record here
return RedirectToPage();
}