我有一个视图组件,其中包含一些指向家庭控制器中不同操作方法的操作链接,如下所示:
<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
。
发生了什么事?
答案 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
});
});