我一直在寻找类似的问题,但是所有的答案都不适用于我的问题。我正在创建一个愿望清单,并且我希望该链接仅返回某种确认,而不转到其他视图。
查看:
...
<div class="wishlist">
@Html.ActionLink(" ", "AddToWishList", "Wishlist", routeValues: new
{
itm_id = item.id
},
htmlAttributes: new {@class = "heart" })
</div>
...
控制器
public async Task<ActionResult> AddToWishList(int itm_id, int recordId)
{
...
return RedirectToAction(nameof(Index));
}
答案 0 :(得分:2)
您要使用Ajax.ActionLink而不是Html.ActionLink。下面的文章应指定用法的一些详细信息。确保记住包括了jQuery库,否则它将不会生成您期望的链接类型。
https://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/ajax-actionlink-and-html-actionlink-in-mvc/
就我个人而言,我不会使用Microsoft方法并用JavaScript自己编写jQuery Ajax回发。
答案 1 :(得分:1)
您可以简单地使用Jquery Get实现此目的。 https://api.jquery.com/jquery.get/
这是您的后端。
public async Task<JsonResult> AddToWishList(int itm_id, int recordId)
{
// Do you data here and put it to the List<something> list
return Json(list, JsonRequestBehavior.AllowGet);
}
您的前端应该是这样的。
<button>Click</button>
<div class="wishlist">
</div>
<script>
$("button").click(function(){
$.get( "YourControllerName/AddToWishList",{itm_id: yourItemId, recordId: yourRecordId} function( data ) {
$( ".wishlist" ).html( data );
alert( "Load was performed." );
});
});
</script>