视图组件不能 link 到 POST 操作方法?
View components can't link to POST action methods?
我有一个视图组件,其中包含一些指向家庭控制器中不同操作方法的操作 link,如下所示:
<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
-link 时,我被定向到一个空白页面,例如 url 或 /Home/Update/5,什么也没有更多发生。即使我在调试模式下 运行 并在 Update
方法的第一行设置断点也是如此。 Update
是一种 POST
方法。这重要吗?
在任何一种情况下,Update
都不会被执行。
这是怎么回事?
您不能通过单击 link 来调用 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
});
});
我有一个视图组件,其中包含一些指向家庭控制器中不同操作方法的操作 link,如下所示:
<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
-link 时,我被定向到一个空白页面,例如 url 或 /Home/Update/5,什么也没有更多发生。即使我在调试模式下 运行 并在 Update
方法的第一行设置断点也是如此。 Update
是一种 POST
方法。这重要吗?
在任何一种情况下,Update
都不会被执行。
这是怎么回事?
您不能通过单击 link 来调用 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
});
});