我有一个搜索页面,它将数据库中的搜索返回到 table。 table 是使用存储在 ViewBag 中的对象从 for 循环生成的。每行生成一个编辑和删除按钮。我如何将信息从一个视图发送到另一个视图?
我已经尝试使用 JQuery 来获取该行,但这并没有引导我到任何地方。
回答1
我能想到的最简单的解决方案是使用 asp-route-{value} 标签助手。
你将要做的是:
- 添加要在锚中填充的对象的 ID。这被称为锚标记助手。您可以将所需的任何信息作为路由参数传递,这意味着它将作为 URL 中的数据发送。例如,如果我们想在下一个视图中填充产品对象,您可以简单地将产品的 Id 发送到下一个视图,如下所示:
<a class="btn btn-warning" asp-controller="Product" asp-action="Delete" asp-route-productId="@product.Id">Delete</a>
- 在控制器中,您需要使用锚标记助手中使用的相同来捕获路由参数。例如,您将实现如下内容:
public async Task<IActionResult> Delete(int productId)
{
//use the productId to populate the object
//send the populated object back to the view
return View(populatedOject);
}
- 最后,您将能够在视图中使用填充的对象(模型)。
参考: