问题:你好,所以在显示产品的视图中,我有一个按钮可以调用post方法将该产品添加到购物车中,但该按钮根本无法执行此操作。
<div class="mb-3">
<input class="btn btn-primary" type="submit" value="Add to cart" asp-controller="Cart" asp-action="Add" asp-route-id="@Model.Id"/>
</div>
这是手推车的控制器中的方法
[HttpPost]
public async Task<IActionResult> Add(int productId)
{
//Console.WriteLine("HelloCartAdd!");
//Some logic.
return RedirectToAction("Detail", "Product", productId);
}
当路由参数定义为asp-route-id="@Model.Id"
时,操作方法应使用"id"参数名称:
[HttpPost]
public async Task<IActionResult> Add(int id)
{
...
}
如果[HttpPost]
属性应用于动作方法,则将formmethod="post"
属性添加到<input>
标记。我想按钮已经在表单中了。
<form>
<input class="btn btn-primary" type="submit" formmethod="post" value="Add to cart" asp-controller="Cart" asp-action="Add" asp-route-id="@Model.Id" />
</form>