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

Posted

技术标签:

【中文标题】如何在 JQuery 中格式化 URL.Action() 调用以设置链接的 href 属性?【英文标题】:How to format a URL.Action() call in JQuery to set a link's href attribute? 【发布时间】:2011-09-15 21:29:45 【问题描述】:

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

这是基本字符串:

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

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

【问题讨论】:

【参考方案1】:

哦,不,您不能像尝试那样混合服务器端代码和 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);
    );
);

【讨论】:

我现在有一个新问题。我需要一种方法来检查墙纸是否已被收藏,以便在用户将鼠标悬停在图像上时知道要显示哪个图像,黑色星形或黄色星形。我能想到的最简单的方法是使用字典,图像的 id 作为键,布尔值表示最喜欢的状态。但是,由于图像的 id 被设置为标题,我不知道我将如何获得正确的值。【参考方案2】:

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

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

【讨论】:

以上是关于如何在 JQuery 中格式化 URL.Action() 调用以设置链接的 href 属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery datetimepicker 中格式化日期?

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

如何使用 javascript/jquery 将数字格式化为印度货币(在数据表中)

如何在 PHP 中使用 jquery 验证 'dd/mm/yyyy HH:ii P' 格式的日期时间?

如何使用 jquery 正确格式化货币?

如何在 jQuery 中遍历这个 JSON 对象?