我想从客户端调用方法,我的控制器方法具有[ActionName]属性。但是这个名称已经有了相同的动作方法,但是我需要通过ajax调用来调用MyMethod()方法。这可能没有创建任何新方法或对MyMethod()的属性进行任何更改。如何从客户端调用具有actionname属性的方法
这里是控制器代码:
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);
}
});
}
这是行不通的,因为它是只调用第一个方法。
@DarshakGajjar它是如何与你提供的链接重复? – Mairaj
如果另一个不是'HttpPost',你可以这样调用。您不能使用同一控制器中已存在的相同操作名称。 – ViVi
我想应该从请求类型和数据中推断出正确的控制器方法。所以我认为你的问题不在于操作名称,但是数据不会被正确发送或处理。例如,您应该在服务器端调试“HttpRequest.RouteData”中的内容。 –