Я использую ASP.NET MVC, и я пытаюсь создать систему голосования, похожую на stackoverflow.Система голосования, подобная SO в ASP.NET MVC
Я хочу, чтобы, когда я нажимаю кнопку голосования, чтобы сделать запись в действии, выполните некоторые проверки там, но оставайтесь на моей начальной странице и увеличивайте количество голосов (с помощью js), если проверки пройдены (просто вот так).
Элементы, которые я хочу, чтобы голосовать населены Индекс действий
Посмотреть
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div><input type="submit" name="Vote" value="" class="fa fa-angle-up"/>
</div>
<div>@Html.DisplayFor(modelItem => item.Votes)</div>
<div><input type="submit" name="Vote" value="" class="fa fa-angle-down" /></div>
}
Действие
public ActionResult SendVote(string vote)
{
var config = new MapperConfiguration(cfg => cfg.CreateMap<VoteLogViewModel, VoteLog>());
var mapper = config.CreateMapper();
switch (vote)
{
case "":
if (ModelState.IsValid)
{
//Send to db
VoteLogViewModel voteLogViewModel = new VoteLogViewModel
{
DateAdded = DateTime.Now,
Id = Guid.NewGuid().ToString(),
PlaceId = id,
UserId = User.Identity.GetUserId(),
Vote = 1
};
db.VoteLogs.Add(mapper.Map<VoteLog>(voteLogViewModel));
db.SaveChanges();
}
else
{
return RedirectToAction("Index");
}
break;
case "":
if (ModelState.IsValid)
{
//Send to db
}
else
{
return RedirectToAction("Index");
}
break;
}
return new EmptyResult();
}
Как голосовать, без перезагрузки всей страницы ?
Должен ли я просто сделать некоторые ссылки под моими значками голосования и каким-то образом справиться с этим с помощью маршрутов?
Вам нужно использовать ajax для публикации значения, если вы хотите остаться на той же странице. –
Вы можете написать jQuery для вызова ActionMethod с контроллера. –