视图组件无法链接到POST操作方法?

时间:2018-01-24 11:31:09

标签: c# asp.net-core asp.net-core-viewcomponent

我有一个视图组件,其中包含一些指向家庭控制器中不同操作方法的操作链接,如下所示:

<a asp-action="Update" asp-route-id="@item.ProductId">Update quantity</a>
<a asp-action="Details" asp-route-id="@item.ProductId">@item.ProductTitle</a>

行动方法Details,即GET - 方法,正在按预期执行。

但是当我点击Update - 链接时,我被引导到一个空白页面,其中包含/ Home / Update / 5的网址,并且没有其他任何事情发生。即使我在调试模式下运行并在Update - 方法的第一行设置断点,情况也是如此。 Update是一种POST方法。这有关系吗?

在任何一种情况下,都不会执行Update

发生了什么事?

1 个答案:

答案 0 :(得分:1)

您无法通过点击链接来调用POST请求。

您需要使用ajax或表单。 这取决于您的需求。

使用表格:

<form asp-action="Update" asp-route-id="@item.ProductId" method="post">
    <button type="submit">Update quantity</button>
</form>

使用ajax :(假设你有jQuery)

$('<update-link-selector>').on('click', function (e) {
    e.preventDefault();
    var href = $(this).attr('href');

    $.post(href).done(function(response, status, xhr) {
        //success 
    }).fail(function(err) {
        //error
    });
});