[英]Overload ASP.NET MVC Actions
如何重载ASP.NET MVC中的操作,但是支持GET QueryString? 我试着这样做:
public JsonResult Find(string q)
{
...
}
public JsonResult Find(string q, bool isBlaBla)
{
...
}
但每当我访问/controller/find?q=abc
或/controller/find?q=abc&isBlaBla=false
它会抛出System.Reflection.AmbiguousMatchException
。
如何解决这个问题?
实际上您不需要创建重载。 您需要做的就是创建一个包含您期望的所有可能参数的单一操作方法,它将为您映射值(如果可能)。
public JsonResult Find(string q, bool isBlaBla)
{
}
如果您使用的是C#4.0,甚至可以使用Optional Parameters和Name Arguments
ASP.NET不支持使用相同的HTTP谓词进行操作重载。
你应该使用路线,例如find/abc
或find/abc/false
如果必须使用查询字符串,则不能使用任何参数并访问HttpContext
的查询字符串
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.