Así que tengo un botón Me gusta en mi vista de índice que se ve así. Llama a la función "PostLike", que aumenta el número de "me gusta" al insertar una nueva fila en mi tabla de "me gusta".
<form asp-action="PostLike" asp-route-id="@item.Id"> <input id="btn" type="submit" value="Like" class="btn btn-primary"> </form>Lo que quiero hacer es cambiar el valor del botón de "me gusta " a " diferente " cuando se hace clic en él, sin actualizar la página y manteniendo el valor después de actualizar la aplicación. ¿Algunas ideas? Sé que tengo que usar alguna función AJAX para que esto funcione, pero no sé cómo debería implementarse.
puede hacer una llamada ajax para verificar el estado de la solicitud de éxito o error y luego cambiar el valor en el método de éxito
ArticleLikeObj es el objeto que se enviará al controlador para guardar la acción del artículo y es una clase de modelo de vista que contiene propiedades como ArticleId y el usuario registrado actual
llamada ajax
<input id="@item.ArticleId" onClick="Submit_clicked(this.id)" value="Like" class="btn btn-primary"> <input id="@item.ArticleId" onClick="Submit_clicked(this.id)" value="Like" class="btn btn-primary"> <input id="@item.ArticleId" onClick="Submit_clicked(this.id)" value="Like" class="btn btn-primary"> function Submit_clicked(clicked_id) { let ArticleLikeObj = {ArticleId:clicked_id, UserName:"Doe"}; SendRequest(ArticleLikeObj); } function SendRequest(ArticleLikeObj) { $.ajax({ type: "POST", url: '@Url.Action("action name","controller name")', data: ArticleLikeObj, contentType: 'application/x-www-form-urlencoded', dataType: "json", success: function (response) { document.getElementById("Submit").value = "Liked"; }, error: function () { alert("Error!"); } }); }