首页 > 解决方案 > 我使用 HttpGet 和 HttpPost 错了吗?ASP.NET C#

问题描述

代码:

[HttpPost]
public ActionResult DeleteProduct(int ProductID, string Name, decimal Price, string Photo, int Likes, string Description, Enums.ProductCategory.Category Category) 
{
    ProductModel productModel = new ProductModel
    {
        ProductID = ProductID,
        Name = Name,
        Price = Price,
        Photo = Photo,
        Likes = Likes,
        Description = Description,
        Category = Category
    };
    return View(productModel); 
}
[HttpGet]
public ActionResult DeleteProduct(int ProductID)
{
    if(UserController.userSessionID != 0)
    {
        user.DeleteProduct(ProductID);
        return RedirectToAction("ViewSellerProducts", "Product");
    }
    return View();
}

但是我读到 HttpGet 只是为了获取数据而没有做任何其他事情,这[HttpGet]DeleteProduct()没有做。事实是,如果我将 ID 更改DeleteProduct()[HttpPost]0,那么我将如何在视图中获取 ID?

当产品在页面上设置时: 在此处输入图像描述

当我在显示所有详细信息的页面上时,我必须单击删除:

在此处输入图像描述

标签: asp.net-coremodel-view-controllerhttp-get

解决方案


您缺少input产品 ID 以将其传递为HttpPost

<form asp-action="DeleteProduct">
    <input type="hidden" asp-for="ProductID" />
    <input type="submit" value="Delete" class="btn btn-danger" />
    ...
</form>

推荐阅读