我在[FromUri]的查询字符串中有一个非常奇怪的情况。 下面的代码是我的模型参数
public class PagingParams
{
public PagingParams()
{
// set the default values
this.PageNo = 1;
this.PageSize = 30;
}
public int PageNo { get; set; }
public int PageSize { get; set; }
public string OrderBy { get; set; }
}
这是我的控制器代码。
[Route("search")]
[ResponseType(typeof(PagingList<EmailTemplatesInfo>))]
public async Task<IHttpActionResult> Search(SearchParams searchOption, [FromUri] PagingParams p)
{
// Check
if (searchOption == null) return BadRequest("Invalid search options");
// Filter EmailTemplate by Keyword
var emailTemplate = db.EmailTemplates.Where(et => et.Name.Contains(searchOption.Keyword) ||
et.Description.Contains(searchOption.Keyword)).ProjectTo<EmailTemplatesInfo>();
// Filter by Status
emailTemplate = emailTemplate.Where(et => searchOption.Status.Contains(et.Status));
// Check & Set
if (p == null) p = new PagingParams();
// Set Default Sort
if (string.IsNullOrEmpty(p.OrderBy)) p.OrderBy = DEFAULT_ORDERBY;
return Ok(new PagingList<EmailTemplatesInfo>(p, emailTemplate));
}
如果我想为PagingParam传递参数绑定,则基于上面的代码。
应该是这个网址
但是我得到了swashbuckle的结果
PagingParam的对象名称需要附加在查询字符串
中答案 0 :(得分:2)
解决问题的正确方法: [FromUri(姓名=&#34;&#34;)] PagingParams p
答案 1 :(得分:0)
我发现了一个解决方法。
编写IFilterOperation以覆盖它是必需的。
它可能不是最好的方法,但它解决了我的问题。
...
require_once(__DIR__ .'/../vendor/autoload.php');
use Symfony\Component\HttpFoundation\Response;
...
$response = $sth->fetchALL(PDO::FETCH_ASSOC);
return $app->json($response, Response::HTTP_OK)->setEncodingOptions(JSON_PRETTY_PRINT);