Как отформатировать вызов URL.Action () в JQuery для установки атрибута ссылки href? - PullRequest
2 голосов
/ 16 июня 2011

Мне нужно установить атрибут href ссылки, чтобы он указывал на конкретное изображение, в качестве заголовка которого указан его идентификатор из базы данных.Однако у меня возникли проблемы с попыткой отформатировать строку, чтобы включить в нее вызов для получения атрибута заголовка изображения.

Вот базовая строка:

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

FavoritesLink - это divа у ребенка всего одно изображение.

Ответы [ 2 ]

3 голосов
/ 16 июня 2011

О нет, вы не можете смешивать код на стороне сервера и 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);
    });
});
0 голосов
/ 16 июня 2011

Вы URL. Действие отображается на стороне сервера, а на вашем JavaScript - на стороне клиента.У вас не будет доступа к элементам dom, когда вы пытаетесь создать ссылку.

Вы должны получить фактический URL, отображаемый в URL.Action, и создать строку на стороне клиента

...