2016-09-14 4 views
0

Ich habe ein paar Checkboxen auf meiner Seite. Ich habe ein paar Fragen, um sicherzustellen, dass immer nur ein Kontrollkästchen aktiviert ist. Ich habe jedem Kontrollkästchen einen bestimmten Wert zugewiesen. Der untere Ajax findet das Kontrollkästchen, das aktiviert ist, und ich nehme den zugehörigen Wert. Wie übermittle ich diesen Wert an meine Aktion?ASP.NET & Ajax - Wie übergibt man Wert von Ajax an Aktion?

AJAX

$("input:checkbox").click(function() {    
     var PaymentID = document.querySelector('#chkBox:checked').value; 
     alert(PaymentID); // for test   
     $.ajax({ 
      type: "POST", 
      dataType: "json", 
      data: PaymentID, 
      contentType: "application/json; charset=utf-8", 
      url: "@Url.Action("MyAction", "Home")", 
      success: function() { 
       return PaymentID; // Failed attempt at passing data. 
      } 
     }) 
    }) 

Aktion: Ich bin ziemlich neu in Ajax

[HttpPost] 
    public ActionResult MyAction(string PaymentID) 
    { 
     // Magic 
    } 

Bitte bedenken. Danke Leute.

+0

Wenn Sie nur einer nach dem anderen überprüft wollen, sollten Sie mit Radio-Buttons betrachten, nicht Kontrollkästchen –

+0

Kontrollkästchen geben Sie mir die Möglichkeit, ein bestimmtes Element abzuwählen. Ich habe jQuery an Ort und Stelle, die sicherstellt, dass nur einer auf einmal überprüft wird. –

Antwort

2

Sie können ein Javascript-Objekt mit dem Namen PaymentID (gleichen Namen wie die Aktion-Methode Parameter)

data: { PaymentID: PaymentID }, 

Sie contentType zu angeben brauchen nicht passieren, wie Sie ein einfaches Objekt senden. Außerdem müssen Sie nicht notwendigerweise dataType für Ihren Ajax-Aufruf angeben, um die Daten zu senden.

Dies sollte funktionieren.

var PaymentID = "some value"; 
$.ajax({ 
      type: "POST",    
      data: { PaymentID: PaymentID },    
      url: "@Url.Action("MyAction", "Home")", 
      success: function (response) { 
       console.log('response', response); 
      } 
     }); 

Oder Sie können die $.post Methode verwenden.

$.post("@Url.Action("MyAction", "Home")",{ PaymentID: PaymentID }, function(response) { 
     console.log('response', response); 
}); 
+0

Das führte mich zu meiner Antwort. Vielen Dank. –

Verwandte Themen