クライアント側からメソッドを呼び出そうとしていますが、コントローラメソッドに[ActionName]属性があります。しかし、すでにその名前で同じアクションメソッドがあります。しかし、私はこのメソッドをajax呼び出しでMyMethod()と呼ぶ必要があります。これは、新しいメソッドを作成したり、MyMethod()の属性を変更したりせずに可能ですか?それが唯一の最初のメソッドを呼び出しているように、これは、動作していないクライアント側からactionname属性を持つメソッドを呼び出す方法
function ApplyDiscountCode() {
debugger
$.ajax({
type:"POST",
url: "/controllername/Paymentmethod", // call method
data: { dd: $("#inpCode").val(), ff: null },
success: function (data) {
debugger
alert(data);
}
});
}
:
public ActionResult PaymentMethod()
{
// Some logic
}
[ValidateInput(false)]
[HttpPost, ActionName("Paymentmethod")]
[FormValueRequired("applydiscountcouponcode")]
public ActionResult MyMethod(string dd, FormCollection ff)
{
// Rest of logic
}
Javacriptコード:
は、ここでコントローラのコードです。
@DarshakGajjarあなたが提供したリンクとの重複はどうですか? – Mairaj
もう1つが 'HttpPost'でなければ、それを呼び出すことができます。同じコントローラ内にすでに存在するアクション名を使用することはできません。 – ViVi
私は正しいコントローラのメソッドは、要求の種類とデータから推測する必要がありますと思う。だから私はあなたの問題は、アクション名ではないと思うが、そのデータは送信されていないか、正しく処理されていません。 'HttpRequest.RouteData'にあるものをサーバ側でデバッグすべきです。例えば、出発点です。 –