Ich habe einen sehr seltsamen Fall in meinem Querystring für [FromUri]. Der folgende Code ist mein ModellparameterMVC Web Api 2 [FromUri] Parameter Bindung und Querystring ist anders
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; }
}
Dies ist mein Controller-Code.
[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));
}
Base auf dem obigen Code, wenn ich für PagingParam Bindung in Parameter übergeben werden soll.
Sollte diese URL sein
- Suche? PageNo = 1 & Pagesize = 10 & OrderBy = CreatedOn
Aber das Ergebnis i in swashbuckle bekommen es
- suchen werden? p.PageNo = 1 & p.PageSize = 10 & p.OrderBy = CreatedOn
den Objektnamen für PagingParam müssen in der Abfragezeichenfolgeflag
Können Sie versuchen, Ihre Anwendung zu debuggen dem erwarteten Abfrage-String und sehen, ob die Parameter korrekt innerhalb gebunden waren die Controller-Aktion? Ich denke, wenn sie richtig gebunden sind, dann könnte das Problem mit der Swashbuckle sein. –
@ OJRaqueño Ich habe versucht, dass ich p anhängen muss. um sicherzustellen, dass der Parameter an das Modell übergeben wird .. – Nic