在ASP.NET Web API中,如果控制器接收到一个过长的查询字符串,可能会返回BadRequest(400)错误。为了解决这个问题,你可以使用以下方法之一:
FromUri
特性将查询字符串参数绑定到方法参数中,并设置MaxLength
属性来限制查询字符串的长度。public IHttpActionResult Get([FromUri] MyModel model)
{
// your code here
}
public class MyModel
{
[MaxLength(100)]
public string QueryString { get; set; }
}
NameValueCollection
来手动获取查询字符串,并检查其长度。如果查询字符串长度超过了你的预期,你可以返回一个BadRequest错误。public IHttpActionResult Get()
{
var queryStrings = Request.GetQueryNameValuePairs();
var queryString = queryStrings.FirstOrDefault(q => q.Key == "queryString").Value;
if (queryString != null && queryString.Length > 100)
{
return BadRequest("Query string is too long.");
}
// your code here
}
requestLimits
来限制查询字符串的长度。
这些方法可以帮助你限制查询字符串的长度,并在超过限制时返回BadRequest错误。你可以根据你的需求选择其中的一种方法。