Jak utworzyć link do metody json w kontrolerze?

Jak utworzyć link do metody json w kontrolerze?
RE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 111
0

Witam,

czy moglibyście mi pomóc z utworzeniem linku do metody w kontrolerze, bo za cholerę nie mogę wpaść na rozwiązanie. Mam poniższy kod:

Kopiuj
$("#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;'>
           // Jak utworzyć link który przekieruje mnie do akcji w kontrolerze korzystając ze zwróconych danych json. głównym problemem jest fakt że nie mogę  jako parametr dodać wartosci z jsona
           '@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)
            }
        });


    });

 

Jak można obejść to rozwiązanie ? Pozdrawiam.

kalar
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 95
0

W url musisz podać cały adres strony czyli http://www.twojastrona.pl/routing_do_akcji_w_kontrolerze

IN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

spróbuj coś takiego

Kopiuj
"@Ajax.ActionLink(" ", "RemoveUserByid", "User", new { user="_id_"},new AjaxOp**tions { UpdateTargetId = "users"})".replace("_id_", json[i].id)
ŁF
  • Rejestracja: dni
  • Ostatnio: dni
0

Przecież to jest normalna akcja, tylko przyjmująca i/lub zwracająca JSON, więc Url.Action(UserController.RemoveByIdActionName, UserController.Name, new { id = Model.Id }).
NIGDY nie używaj URLi pisanych z palca ('/User/GetUsers/'), a najlepiej do nazw akcji i view używaj stałych zdefiniowanych w kontrolerze (w powyższym kodzie UserController.RemoveByIdActionName to public const string RemoveByIdActionName = "RemoveById";, a Name to to samo, tylko o wartości "User").

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.