C# 视图组件无法链接到后期操作方法?

C# 视图组件无法链接到后期操作方法?,c#,asp.net-core,asp.net-core-viewcomponent,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> 操作方法详细信息是一个GET方法,正在按预期执行 但是,当我点击更

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

<a asp-action="Update" asp-route-id="@item.ProductId">Update quantity</a>
<a asp-action="Details" asp-route-id="@item.ProductId">@item.ProductTitle</a>
操作方法详细信息是一个GET方法,正在按预期执行

但是,当我点击更新链接时,我会被引导到一个空白页面,比如url为/Home/Update/5,而没有发生更多的事情。即使在调试模式下运行并在更新方法的第一行设置断点,情况也是如此。更新是一种POST方法。这有关系吗

在这两种情况下,都不会执行更新


发生了什么事?

您不能通过单击链接来调用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
    });
});

只是补充一下,当你点击一个链接,而这个点击并没有被JS截获时,你的浏览器会对这个URL进行HTTP访问。若要发布或使用任何其他方法,必须在JavaScript中使用表单或AJAX