Ich versuche, eine Methode von Clientseite aufrufen, hat meine Controller-Methode [ActionName] -Attribut auf es. Aber es gibt bereits eine gleiche Aktionsmethode mit diesem Namen. Aber ich muss diese Methode MyMethod() von Ajax aufrufen. Ist dies möglich, ohne eine neue Methode zu erstellen oder Änderungen an den Attributen von MyMethod() vorzunehmen?So rufen Sie eine Methode mit actionname -Attribut von Clientseite
Hier ist Controller-Code:
public ActionResult PaymentMethod()
{
// Some logic
}
[ValidateInput(false)]
[HttpPost, ActionName("Paymentmethod")]
[FormValueRequired("applydiscountcouponcode")]
public ActionResult MyMethod(string dd, FormCollection ff)
{
// Rest of logic
}
Javacript Code:
function ApplyDiscountCode() {
debugger
$.ajax({
type:"POST",
url: "/controllername/Paymentmethod", // call method
data: { dd: $("#inpCode").val(), ff: null },
success: function (data) {
debugger
alert(data);
}
});
}
Dies funktioniert nicht, da es nur die erste Methode aufruft.
@DarshakGajjar Wie ist es mit dem von Ihnen bereitgestellten Link doppelt vorhanden? – Mairaj
Sie können so anrufen, wenn der andere nicht 'HttpPost' ist. Sie können nicht den gleichen Aktionsnamen verwenden, der bereits in demselben Controller vorhanden ist. – ViVi
Ich denke, die richtige Controller-Methode sollte aus dem Anfragetyp und den Daten abgeleitet werden. Ich denke also, Ihr Problem ist nicht mit dem Aktionsnamen, aber damit werden die Daten nicht korrekt gesendet oder verarbeitet. Sie sollten serverseitig debuggen, was zum Beispiel als Startpunkt in der HttpRequest.RouteData steht. –