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