Есть функция Like
public ActionResult LikeMethod(string userId, int postId)
{
var userLike = _context.Publications.FirstOrDefault(u => u.Id == postId);
if (ModelState.IsValid)
{
if (userLike != null)
{
userLike.Like = userLike.Like + 1;
_context.Update(userLike);
_context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
}
return View();
}
так же есть js скрипт
<script>
function sendLike(userId, postId) {
$.ajax({
url: '@Url.Action("LikeMethod", "Publications")',
type: 'POST',
data: { 'postId': postId, 'userId': userId },
success: function(data) {
setTimeout(function() {
alert('Вы поставили Like!', data)
},
500);
},
error: function() {
console.log('Ошибка во время отправки комментария', this);
}
});
}
</script>
Так выглядит Html кнопки.
<div id="postdiv-@Model.Id">
<form>
<input id="LikeId" type="button" value="Like" class="btn btn-default" onclick="sendLike('@Model.UserId', '@Model.Id')"
style="color: aliceblue; background-color: darksalmon;" />
</form>
</div>
Проблема в следующем:
Когда добавляешь лайк он ставиться не сразу, приходиться обновлять страницу по несколько раз. Так же может и не с первого раза ставить лайк, приходиться по несколько раз ставить и обновлять страницу, что бы заработал. В чём может быть причина?
Вы пытаетесь сохранять асинхронно (_context.SaveChangesAsync();
) в синхронном методе, то есть метод возвращает управление ещё до того, как сохранение в БД произошло. Либо сохраняйте синхронно
_context.SaveChanges();
Либо асинхронно
public async Task<ActionResult> LikeMethod(string userId, int postId) // изменение здесь
{
var userLike = _context.Publications.FirstOrDefault(u => u.Id == postId);
if (ModelState.IsValid)
{
if (userLike != null)
{
userLike.Like = userLike.Like + 1;
_context.Update(userLike);
await _context.SaveChangesAsync(); // и здесь
return RedirectToAction(nameof(Index));
}
}
return View();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
У меня есть класс Student, который содержит информацию о студентах, а так же клас Group, который содержит описания факультетаОдин студент может...
Как можно сгенерировать число Biginteger заданного размера?
Как правильно использовать fetch_array?