In meiner ASP.NET MVC 4-Ansicht ruft das folgende Controller-Aktion nicht auf. Klick-Ereignis wird ausgelöst, weil ich die Warnmeldung sehen kann. Aber wenn ich einen Breakpoint auf die Controller-Aktion im Debug-Modus setze, kommt die App nicht zu diesem Punkt und nichts passiert, wenn ich in der Warnmeldung auf "OK" klicke. Ich verwende LINQ to SQL. Ähnliche Anrufe Controller-Aktionen zu speichern und setzen Sie funktionieren:ASP.NET MVC AJAX Post zu Controller-Aktion funktioniert nicht
$('#DeletePOC').click(function() {
if (confirm("This action will delete this POC record permanently. Click OK if you want to delete this record; otherwise, click 'Cancel'")) {
disableButton(['#CancelPOC', '#POC']);
$.ajax({
url: '@Url.Action("POCDelete")', type: "POST", dataType: "json",
data: {
SitePOCID: $('#POCId').val()
},
success: function (data) {
$('#POCStatus').html('<div class="success">POC Removed Successfully.</div>');
},
error: function() {
$('#POCStatus').html('<div class="field-validation-error">Some Error Occured in Removing POC.</div>');
}
});
}
});
-Controller: ich während debug getestet haben, dass App nicht auf diese Aktion-Methode bekommt:
[HttpPost]
public ActionResult POCDelete(int id)
{
db.POC_dsp(id);
return Json("");
}
Dank @Anoop sein, kam ich, dass der Parametername in den Daten zu wissen, sollte in der Aktionsmethode die gleiche wie die Parameternamen sein. Dies bedeutet, dass die '@ Url.Action (ActionMethodName)' nach der Aktion sucht, die den gleichen Parameternamen wie im Ajax-Aufruf hat. Aber der Fehlerabschnitt meines obigen Ajax-Aufrufs zeigte keinen Fehler an. Ich nehme an, das hat etwas mit dem Klassennamen des div-Tags des Fehlerbereichs zu tun. – nam