Передайте переменные через jQuery в Ajax. ActionLink для переключения изображения через jQuery & MVC - PullRequest
0 голосов
/ 09 марта 2012

В следующем идентификаторе ActionLink хотелось бы установить PartyId & IsFollowing с двумя переменными jQuery

@Ajax.ImageActionLink("ToggleEnabled", "Following Status",
                                    new { id = PartyId },
                                    new AjaxOptions
                                    {
                                        UpdateTargetId = "ti" + PartyId,
                                        InsertionMode = InsertionMode.Replace,
                                    },
                                    IsFollowing,
                                    "../../Images/tick.png",
                                    "../../Images/tick_grey.png",
                                    PartyId)

Как я могу это сделать?

1 Ответ

1 голос
/ 05 апреля 2012

Мое решение

Поскольку это не может быть сделано так, как я хотел, вот версия jQuery для полноты: это переключит изображение при нажатии, обновит БД через $ .Ajax и изменит изображение на переключенную версию

HTML

<a id="HD_FollowingLink">
  <img id="HD_FollowingImage" />
</a>

jQuery & JavaScript

$('#HD_FollowingLink').click(function () {
        // 'Following' Toggle Button has been clicked, get its 'id' & use ajax to toggle DB, display ajax returned data.IsFollowing (which should be toggled)
        var id = $(this).attr('id');              
        $.ajax({
            url: "/Home/ToggleEnabled/" + id,
            type: "POST",
            data: ({ id: id }),
            success: function (data, textStatus) {
                ToggleFollow(data.IsFollowing, id);
            }
        }); //$.ajax end
    });

function ToggleFollow(IsFollowing, id) {
// Called by LoadHoverDivData & HD_FollowingLink $.Ajax calls
$('#HD_FollowingLink').attr("id", id); //Set this id so we can use it in     
$('#HD_FollowingLink').click handler


if (IsFollowing == true) {
$('#HD_FollowingImage').attr("src", "../../Images/tick.png");

} else {
$('#HD_FollowingImage').attr("src", "../../Images/tick_grey.png");
}
};

MVC Action

public ActionResult ToggleEnabled(int id)
{
if (Request.IsAjaxRequest())
{
// Get if party being followed 
int PID = ViewBag.ThisParty.PartyId;
var f = db.Followings.SingleOrDefault(q => q.PartyFollowedID== id && q.ThisPartyId == PID);
f.following = f.following != true;// Toggle bit
db.Entry(f).State = System.Data.EntityState.Modified;
db.SaveChanges();// Save toggled bit back to DB

return Json(new {IsFollowing = f.following });
}
return Content("Error");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...