繁体   English   中英

重载ASP.NET MVC操作

[英]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/abcfind/abc/false

如果必须使用查询字符串,则不能使用任何参数并访问HttpContext的查询字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM