我试图从客户端调用方法,我的控制器方法有[ActionName]属性。但是已经有一个与该名称相同的动作方法。但我需要通过ajax调用调用此方法MyMethod()。如果不创建任何新方法或对MyMethod()的属性进行任何更改,这是否可行。
这是控制器代码:
public ActionResult PaymentMethod()
{
// Some logic
}
[ValidateInput(false)]
[HttpPost, ActionName("Paymentmethod")]
[FormValueRequired("applydiscountcouponcode")]
public ActionResult MyMethod(string dd, FormCollection ff)
{
// Rest of logic
}
Javacript代码:
function ApplyDiscountCode() {
debugger
$.ajax({
type:"POST",
url: "/controllername/Paymentmethod", // call method
data: { dd: $("#inpCode").val(), ff: null },
success: function (data) {
debugger
alert(data);
}
});
}
这不起作用,因为它只调用第一种方法。
答案 0 :(得分:-1)
我认为您应该将代码更改为:
[HttpGet]
public ActionResult PaymentMethod()
{
// Some logic
}
[HttpPost]
[ValidateInput(false)]
[FormValueRequired("applydiscountcouponcode")]
public ActionResult PaymentMethod(string dd, FormCollection ff)
{
// Rest of logic
}
当您使用Asp.net Core时,您可能会更改我方法的属性,如下所示:
[ValidateInput(false)]
[HttpPost("PaymentMethod")]
[FormValueRequired("applydiscountcouponcode")]
public ActionResult MyMethod(string dd, FormCollection ff)
{
// Rest of logic
}
希望这有帮助!