如何在ASP.NET MVC中创建图片链接?

3

那么,如何创建像这样的图片链接,如下方的投票(在左侧)?(启用了ajax的链接)

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

在这种情况下,我不喜欢Ajax助手机制。我认为没有任何理由从服务器获取HTML,这正是标准Ajax助手将要做的。我更喜欢使用jQuery来处理它,就像我在示例中展示的那样。 - tvanfosson
1个回答

10

我认为这就是基本想法。您可以根据需要填写细节/适应您的标记和模型/动作。

$('.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' } );
});

几个问题: 1)您能解释一下最后一个参数{vote: "up"}吗?我该如何在控制器中捕获它? 2)这是一个ajax post方法吗? - Ante
是的 - 这是ajax。您将在同一控制器上拥有一个名为Vote的操作,该操作接受一个字符串参数vote:public ActionResult Vote(string vote){...} - tvanfosson
请注意--这只是一个例子。你也可以发送一个布尔值--true表示赞同,false表示反对。 - tvanfosson
请注意,如果您想要将投票数返回以便在页面上更新它,只需将其作为JSON响应发送回来,并使用POST方法的成功回调来使用从服务器返回的值更新投票计数。 - tvanfosson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接