我需要实现以下WebAPI方法:
/api/books?author=XXX&title=XXX&isbn=XXX&somethingelse=XXX&date=XXX
所有查询字符串参数都可以为null。也就是说,调用者可以指定0到5个参数中的所有参数。
在MVC4 Beta中,我曾经执行以下操作:
public class BooksController : ApiController
{
// GET /api/books?author=tolk&title=lord&isbn=91&somethingelse=ABC&date=1970-01-01
public string GetFindBooks(string author, string title, string isbn, string somethingelse, DateTime? date)
{
// ...
}
}
MVC4 RC不再具有这种行为。如果我指定的参数少于5个,它会回答404
:
在控制器“ Books”上未找到与请求匹配的操作。
不需要在URL路由中指定可选参数的正确方法签名,使其具有与以前一样的行为?
启用[httpget]。
—
user960567 2012年
如果设置了所有参数,则将调用该方法;此外,它以它开始,
—
frapontillo 2012年
Get
因此它自动与该HTTP GET
方法绑定...
是。我知道它是如何工作的。我只是无法在这种特殊情况下使用它。
—
frapontillo 2012年
这个怎么编译?
—
EkoostikMartin 2014年
string?
不是有效的类型。您不能将其声明string
为可空类型,因为它是引用类型。