我的控制器中有两个操作方法,两个都是在POST请求上调用但具有不同的返回类型:
public JsonResult AJAXCreate()
public string AJAXCreateNSave([Bind(Exclude = "Id, OrderItems")]Order order)
当我将第二个重命名为AJAXCreate时,根本不会调用它。我想为两种动作方法使用相同的名称。
答案 0 :(得分:5)
与WCF服务中的操作非常相似,没有两个操作可以具有相同的名称,除非它们针对不同的HTTP谓词,例如:
public ActionResult MyAction() { }
[HttpPost]
public ActionResult MyAction(MyModel model) { }
如果您尝试使用两个具有相同名称的操作,则MVC不知道要选择哪个操作。
答案 1 :(得分:3)
在没有用于指定其他操作名称的属性的情况下,ASP.NET MVC中不允许重载方法。看看这个类似的问题和答案:Can you overload controller methods in ASP.NET MVC?