首页 > 解决方案 > 如何在 ASP.NET CORE 2.2 中将变量从表单传递到 ajax

问题描述

我有一个包含项目列表的页面,我需要将它们添加到购物车。我需要用ajax添加它们,我确实写了ajax请求,所以我应该如何将vars传递给ajax然后发送到控制器:

function AddToCart(id) {
    $.ajax({
        url: "/CartNancy/Add",
        type: "POST",
        data: {
            id : id
        },
        success: function () {
            prompt("Added to cart");
        }
    });
}

这是形式

<form method="post">
<input name="Id" value="@item.Id" class="btn btn-success" hidden>
<button onclick="AddToCart()" class="btn btn-success">Add to cart</button>
</form>

控制器

[HttpPost]
public JsonResult Delete(string id) {
    _bookService.Remove(id);
    return new JsonResult("Deleted");
}

标签: c#ajaxasp.net-core

解决方案


要强制 Web API 从请求正文中读取简单 id,请将 [FromBody] 属性添加到参数中:

[HttpPost]
public JsonResult Delete([FromBody]string id) {
    _bookService.Remove(id);
    return new JsonResult("Deleted");
}

你可以在这里查看完整的文档:


推荐阅读