如何在Asp.net MVC4中使用2个具有相同名称的控制器方法

时间:2013-03-21 09:09:03

标签: asp.net-mvc-4

是否可以使用2个具有相同名称的控制器方法?

1 个答案:

答案 0 :(得分:2)

你指的是控制器方法让我困惑的是你所说的。是C#类方法还是控制器操作?让我回答两个问题。

Pure C#不允许

在C#中不可能有两个具有相同签名的方法。这意味着具有相同类型的相同名称和相同数量的参数。

public int Calculate(int a, int b) { ... }
public int Calculate(int first, int second) { ... } // compiler ERROR

但是Asp.net MVC控制器操作允许它

如果您正在谈论Asp.net MVC控制器操作,那当然是可能的。使用ActionName属性来完成您的需求:

public ActionResult Common() { ... }

[ActionName("Common")]
public ActionResult CommonAgain() { ... } // C# signature differs

但是其中一个必须有一些其他方法选择器属性,以便动作调用者知道在请求进入时使用哪一个......因为它们是404运行时错误。 可能是一个应该是常规请求操作,而另一个应该在Ajax请求进入时执行。或类似。需要一些区别。