重载ASP.NET MVC操作

Alo*_*kin 5 c# asp.net asp.net-mvc

如何重载ASP.NET MVC中的操作,但是支持GET QueryString?我试着这样做:

public JsonResult Find(string q)
{
    ...
}

public JsonResult Find(string q, bool isBlaBla)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

但每当我访问/controller/find?q=abc/controller/find?q=abc&isBlaBla=false它抛出一个System.Reflection.AmbiguousMatchException.

如何解决这个问题?

小智 2

您实际上不需要创建重载。您需要做的就是使用您期望的所有可能参数创建一个操作方法,它将为您映射值(如果可能)。

public JsonResult Find(string q, bool isBlaBla)
{

}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 C# 4.0,您甚至可以使用可选参数和名称参数