asp.net mvc2 actionlink с параметрами, похожими на getelementbyid - PullRequest
0 голосов
/ 24 марта 2011

Ссылка «Мое действие» выглядит следующим образом: <%: Ajax.ActionLink ("linktext", "actionName", "controllerName", new {area = "areaName", <strong>id = "abcd" , productURLName = "choc"}, новые AjaxOptions {UpdateTargetId = "SFS", InsertionMode = InsertionMode.Replace, HttpMethod = "Опубликовать"}, новый {style = "color: # 00FF00"})%>

Мне нужно получить значение элемента управления во время выполнения и передать его в качестве параметра вместо "abcd".

В javascript я могу сделать getelementbyId. Что я могу сделать в этом случае?

Чтобы получить аналогичную функциональность, я также попробовал jquery ajax, но в этом случае действие контроллера даже не вызывается, по крайней мере, ссылка действия работает ::

function SendInvite () {

              var url = "areaName/controllerName/actionName/" + document.getElementById("BasicUserInfo").value + "?productURLName=choc";
              $.post(url, function (data) {
                                        if (data == '<%= Boolean.TrueString %>') {
                                            $("#result").append("Invite Sent");
                                        } else {
                  $("#result").append("Error, Please try later");
                                        }
              });
          }

Спасибо Арнаб

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Вы можете избавиться от MicrosoftAjax и попробовать так:

<%= Html.ActionLink(
    "linktext", 
    "actionName", 
    "controllerName", 
    new { area = "areaName", productURLName = "choc" }, 
    new { style = "color:#00FF00", id = "myLink" }
) %>

, а затем:

$(function() {
    $('#myLink').click(function() {
        var id = $('#BasicUserInfo').val();
        $.post(this.href, { id: id, productURLName: 'choc' }, function(result) {
            $('#SFS').html(result);
        });
        return false;
    });
});
0 голосов
/ 24 марта 2011

Вы должны написать свой код jquery при событии клика по ссылке.например, это ваша ссылка

<%:Html.ActionLink("linkText", "actionName", "controllerName", new {area="areaName",id = "abcd", productURLName = "choc"},  new {@class="myclass", style = "color:#00FF00" })%>

, тогда вам нужно написать функцию jquery, которая перехватывает событие click этой ссылки.здесь я использую селектор класса

 $(".myclass").live('click', function(){
                  var url = "areaName/controllerName/actionName/" + document.getElementById("BasicUserInfo").value + "?productURLName=choc";
                  $.post(url, function (data) {
                                            if (data == '<%= Boolean.TrueString %>') {
                                                $("#result").append("Invite Sent");
                                            } else {
                      $("#result").append("Error, Please try later");
                                            }
                  });
return false;


    });

вы также можете получить URL в обработчике событий, используя

var url = $(this).attr('href');
...