ASP.NET MVC 2 Html.ActionLink с переменной JavaScript - PullRequest
5 голосов
/ 21 февраля 2011
<%: Html.ActionLink("Cancel", "Edit", "Users", new {id = " + userID + "  }, null) %>

В приведенном выше коде userId является переменной.Этот синтаксис неправильный, каким он должен быть?

1 Ответ

6 голосов
/ 22 февраля 2011

Вы не можете использовать помощник HTML, который запускается на сервере, чтобы использовать переменную Javascript, известную на клиенте. Таким образом, вам нужно сгенерировать ваш URL с информацией, которую вы располагаете на сервере. Итак, все, что вы можете сделать на сервере, это:

<%: Html.ActionLink("Cancel", "Edit", "Users", null, new { id = "mylink" }) %>

Тогда я полагаю, что на клиенте вы выполняете некоторый javascript (в идеале с jquery), и наступает момент, когда вы хотите запросить сервер, используя этот URL и идентификатор пользователя, который вы рассчитали на клиенте. Так, например, вы можете динамически изменить действие ссылки, добавив некоторый идентификатор:

$(function() {
    $('#mylink').click(function() { 
        var userId = ...
        this.href = this.href + '?' + userId;
    });
});

или, если вы хотите AJAX, укажите эту ссылку:

$(function() {
    $('#mylink').click(function() { 
        var userId = ...
        $.ajax({
            url: this.href,
            data: { id: userId },
            success: function(result) {
                ...
            } 
        });
        return false;
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...