如何格式化JQuery中的URL.Action()来设置链接的href属性?

时间:2011-06-15 20:58:15

标签: javascript jquery asp.net-mvc-2 escaping url.action

我需要将链接的href属性设置为指向特定图像,该图像的ID来自数据库集的标题。但是,我在尝试格式化字符串以包含调用以获取图像的title属性时遇到问题。

这是基本字符串:

$("#favoriteLink").hover(function() {
    $(this).attr("href", '<%: Url.Action("FavoriteWallpaper", "Wallpaper", new{wallpaperId='+$(this).children.attr("title")+'}) %>');
});

favoriteLink是一个div,孩子只是一个图像。

2 个答案:

答案 0 :(得分:3)

哦不,你不能混合使用服务器端代码和javascript。怎么样:

$('#favoriteLink').hover(function() {
    var title = $(this).children.attr('title');
    $(this).attr('href', function() {
        var url = '<%= Url.Action("FavoriteWallpaper", "Wallpaper", new { wallpaperId= "_TITLE_TO_REPLACE_"}) %>';
        return this.href.replace('_TITLE_TO_REPLACE_', title);
    });
});

答案 1 :(得分:0)

你是URL.Action呈现在服务器端和你的javascript客户端。当您尝试构建链接时,您将无法访问dom元素。

您应该获取在URL.Action中呈现的实际URL并构建字符串客户端