我有一个这样的 ApiController:
SearchController : ApiController {
public Book Get(int booksn=-1, string author="")
{
/* search for books matching the parameters */
}
}
所有参数都有默认值,一个空的搜索请求会返回所有内容。
现在我的问题是,如果请求包含其他参数(例如来自 API 用户的拼写错误),它仍然会路由到这个函数:
GET /search?booksn=3&hello=world
潜在的问题是,如果发送的参数类型错误,它将以相同的方式路由,并且我不会在方法中获取参数值,因此我什至无法发送错误响应:
GET /search?booksn=helloWorld
有没有办法防止这种情况?要么防止错误类型,要么防止所有未定义的参数?(我也尝试过使用对象和 [FromUri] 属性但同样的问题)
编辑:我在 .NET 框架 4 中使用 VS 2012