我需要為這個請求撰寫一個Web API:
{apiUrl}/api/sessions/byhour?startTime=2021-06-30T01:00:00&endTime=2021-06-30T03:00:00
所以我有這個控制器和方法:
[ApiController]
[Route("/api/sessions/byhour")]
public class LoginStatsByHourController : ControllerBase
{
[HttpGet, Route("{startTime=0001-01-01T12:00:00}/{endTime=9999-12-31T11:59:59}")]
public List<SessionEntry> GetSessionEntryByDate(string startTime, string endTime)
{...}
}
我測驗了這個請求:
https://localhost:5001/api/sessions/byhour/2021-07-01T14:00:00/2021-07-01T16:00:00
這實質上等于:
https://localhost:5001/api/sessions/byhour/2021-07-01T14:00:00/2021-07-01T16:00:00
并且一切作業正常。但是當我嘗試這個請求時:
;
一切正常。
https://localhost:5001/api/sessions/byhour?startTime=2021-07-01T14:00:00&endTime=2021-07-01T16:00:00
(注意?和&)。我發現這些引數被忽略了,而使用默認的引數(0001-01-01T12:00:00和9999-12-31T11:59:59)代替。為什么會這樣?
uj5u.com熱心網友回復:
試試這個 :
[HttpGet]
public List<SessionEntry> GetSessionEntryByDate(string startTime, string endTime)
{...}
并像這樣呼叫它。https://localhost:5001/api/sessions/byhour/GetSessionEntryByDate?startTime=2021-07-01T14:00:00&endTime=2021-07-01T16:00:00
進一步閱讀:查看此鏈接
uj5u.com熱心網友回復:
它忽略了你的引數,因為如果你想使用一個查詢字串,你必須洗掉"{startTime}/{endTime}",有時(取決于版本)必須在每個輸入引數上添加[FromQuery]屬性
[]
public List<SessionEntry> GetSessionEntryByDate(string startTime="0001-01-01T12: 00:00"。
string endTime="9999-12-31T11:59:59")。
{...}
}
如果你仍然想使用MVC路由,請嘗試這樣做
[]
public List< SessionEntry> GetSessionEntryByDate(string startTime="0001-01-01T12: 00:00"。
string endTime="9999-12-31T11:59:59")。
{...}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/322497.html
標籤:
