具有不同返回类型的操作方法的相同名称

时间:2011-04-21 06:08:24

标签: c# asp.net-mvc

我的控制器中有两个操作方法,两个都是在POST请求上调用但具有不同的返回类型:

public JsonResult AJAXCreate()

public string AJAXCreateNSave([Bind(Exclude = "Id, OrderItems")]Order order)

当我将第二个重命名为AJAXCreate时,根本不会调用它。我想为两种动作方法使用相同的名称。

2 个答案:

答案 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?