2009-08-07 16 views
0

ich habe einen Link, der in eine Javascript ruft eine Bestätigung zu geben:Aufruf Controller-Aktion von Javascript

$("a.delete").click(function() { 
    var name = $(this).parent().prev('td').prev('td').text(); 
    jConfirm('Are you sure you want to delete the following member:' + name, 'Member Delete', function(r) { 
    }); 
}); 

ich will, wenn der Benutzer ja eine Controller-Aktion ähnlich wie nennen klickt, was dieser Code tut:

<%= Html.ActionLink("Delete", "Delete", new { id = item.Mail_ID })%> 

Wie bekomme ich die Funktionalität der Jquery Bestätigung popup, aber immer noch die gleichen Ergebnisse danach würde ich mit dem Actionlink.

Antwort

2

Verwendung:

<%= Url.Action("Delete", "Delete", new { id = item.Mail_ID }) %> 

nur die tatsächliche URL zu erzeugen (ohne die <a href="..." >...</a>). So können Sie, dass in Ihr Javascript nur machen können & Verwendung window.location, so dass Ihr Javascript wird (diese Funktion am Ende Ihrer jConfirm Annahme, daß der Rückruf auf Annahme):

$("a.delete").click(function() { 
    var name = $(this).parent().prev('td').prev('td').text(); 
    jConfirm('Are you sure you want to delete the following member:' + name, 'Member Delete', function(r) { 
     window.location = <%= Url.Action("Delete", "Delete", new { id = item.Mail_ID }) %>; 
    }); 
}); 

Eine weitere Alternative, die würde bedeuten, dass es nach wie vor (ohne die Bestätigung) arbeiten würde, wenn sie Javascript wäre, um den Link zu lassen, wie es & nicht aktiviert tun ist, dann das:

$("a.delete").click(function() { 
    var url = $(this).attr("href"); 
    var name = $(this).parent().prev('td').prev('td').text(); 
    jConfirm('Are you sure you want to delete the following member:' + name, 'Member Delete', function(r) { 
     window.location = url; 
    }); 
}); 

die packt t er URL direkt von der Verbindung (d. h. der von Ihrem Original erzeugte <%= Html.ActionLink...).

+0

ich bin den folgenden Fehler mit diesem Code erhalten: CS0103: Der Name ‚item‘ existiert nicht im aktuellen Kontext – leora

+0

... gut, dass Ihr Code ist etwas, ich kann es nur aus Ihrer Frage kopiert. – Alconja

+0

Oh. Es sei denn, Sie versuchen, mein erstes Beispiel zu verwenden, aber Sie haben Ihr Javascript in einem anderen Bereich deklariert, wo immer Ihr 'Element' ist. In diesem Fall sollte die zweite Version noch funktionieren (mit Ihrem ursprünglichen 'Html.ActionLink'). – Alconja