2009-07-03 8 views
3

Nun, wie man Bildlink wie oben oder unten Stimmen (links) von Link unten erstellen? (Ajax aktiviert Link)Wie erstellt man Bilder Link in ASP.NET MVC?

<%= Ajax.ActionLink("Vote!", 
        "AddPictureVote", 
        "Vote", 
        new {id = Model.PictureId}, 
        new AjaxOptions{UpdateTargetId = "addvote"})%> 
+0

In diesem Fall mag ich den Ajax-Hilfsmechanismus nicht. Ich glaube nicht, dass es irgendeinen Grund gibt, HTML wirklich vom Server zurück zu bekommen, was der Standard-Ajax-Helfer tun wird. Ich würde es lieber mit jQuery behandeln, wie ich in meinem Beispiel zeige. – tvanfosson

Antwort

10

Ich denke, das ist die Grundidee. Sie können die Details ausfüllen/an Ihre Markups und Modelle/Aktionen anpassen.

$('.upvote').click(function() { 
    $(this).addClass('highlight'); 
    $(this).nextAll('.downvote:first').removeClass('highlight'); 
    $.post('<%= Url.Action("vote", new { id = Model.ID } %>', { vote: 'up' }); 
}); 

$('.downvote').click(function() { 
    $(this).addClass('highlight'); 
    $(this).prevAll('.upvote:first').removeClass('highlight'); 
    $.post('<%= Url.Action("vote", new { id = Model.ID } %>', { vote: 'down' }); 
}); 
+0

Wenige Fragen an Sie: 1) Können Sie den letzten Parameter erklären {vote: "up"}? wie kann ich das im controler cachen? 2) ist dies eine Ajax-Post-Methode? – Ante

+0

Ja - es ist Ajax. Sie würden eine Aktion auf dem gleichen Controller namens Vote haben, die eine String-Parameter-Abstimmung verwendet: public ActionResult Vote (string vote) {...} – tvanfosson

+0

Hinweis - das ist nur ein Beispiel. Du könntest es auch boolesch senden - mit der Wahrheit, dass ein Upvote und falsch ein Downvote ist. – tvanfosson

Verwandte Themen