如何将数据json设置为Ajax.actionLink?

时间:2015-03-14 15:07:10

标签: c# jquery ajax json asp.net-mvc

如标题所示。如何将数据json设置为Ajax.actionLink? Ajax方法返回对话框内的所有用户。我想为每一行创建actionlink并在controler中调用我的方法RemoveUserByid。这是我的代码:

$("#remove").click(function () {
    $('.choiceOption').dialog("close");
    $(".dialog").html('');
    $(".dialog").dialog({ //Shows dialog
        height: 300,
        width: 450,
        modal: true,
        resizable: false,
        title: "Usuń uzytkownika:"
    });
    //
    $.ajax({
        url: '/User/GetUsers/',
        type: 'POST',
        contentType: "application/json",
        success: function (json) {      
            $(".dialog").html('');
            for (var i = 0; i < json.length; i++) {
                var rowText = "<tr style='border-bottom: 1px dotted rgb(195, 178, 178); display: block;'>
    <td style='padding-right: 5px'>" + json[i].userid+ "</td>
    <td style='padding-right: 5px'>" + json[i].Name + "</td>
    <td style='padding-right: 5px'>" + json[i].date + "</td>
    <td style='padding-right: 5px;float:right;'>
       //how to create a link that takes me to the controller using the json data?
  '@Ajax.ActionLink(" ", "RemoveUserByid", "User", new { user= json[i].id //syntax error !!!},new AjaxOptions { UpdateTargetId = "users"})';
    </td></tr>";$(".dialog").append(rowText);}
            if (json == 0) {
                $(".dialog").append("Brak ");
            }

        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("Wystąpił problem z przesłaniem danych, spróbuj ponownie za chwile: " + errorThrown)
        }
    });


});

我将不胜感激。 问候!

1 个答案:

答案 0 :(得分:0)

json变量属于javascript范围,不能被c#编译器引用。 您可以使用假常量发出默认链接文本,并将其替换为浏览器端的真实用户ID,如下所示:

 $.ajax({
    url: '/User/GetUsers/',
    type: 'POST',
    contentType: "application/json",
    success: function (json) {      
        $(".dialog").html('');
        var pattern = '@Ajax.ActionLink(" ", "RemoveUserByid", "User", new { user= "FAKEID" },new AjaxOptions { UpdateTargetId = "users"})';
      for (var i = 0; i < json.length; i++) {
     var rowText = "<tr style='border-bottom: 1px dotted rgb(195, 178, 178); display: block;'><td style='padding-right: 5px'>"
                    + json[i].userid + "</td><td style='padding-right: 5px'>" + json[i].Name +
      "</td><td style='padding-right: 5px'>" + json[i].date + "</td>" + 
      "<td style='padding-right: 5px;float:right;'>" + pattern.replace("FAKEID", json[i].id) + "</td></tr>";
            $(".dialog").append(rowText);}
        if (json == 0) {
            $(".dialog").append("Brak ");
        }

    }, }