我有像这样的Controller
class
:
namespace OptionsAPI.Controllers
{
[Route("api/[controller]")]
public class OptionsController : Controller
{
HttpGet("{symbol}/{date}")]
public IActionResult Chain(string symbol, string date)
{
DateTime quotedate = System.DateTime.Parse(date);
}
}
}
当我尝试通过这样的 URL 调用链函数时:
http://127.0.0.1:5000/api/options/Chain/symbol=SPX&date=2019-01-03T10:00:00
我收到此错误:
FormatException: The string 'symbol=SPX&date=2019-01-03T10:00:00' was not recognized as a valid DateTime. There is an unknown word starting at index '0
看起来“SPX”和“日期”被连接成一个字符串
。调用此 URL
的正确方法是什么?
最佳答案
操作上给定的路由模板
[HttpGet("{symbol}/{date}")]
连同 Controller 上的模板
[Route("api/[controller]")]
期望
http://127.0.0.1:5000/api/options/SPX/2019-01-03T10:00:00
但是被调用的URI
http://127.0.0.1:5000/api/options/Chain/symbol=SPX&date=2019-01-03T10:00:00
将 URL 中的 Chain
映射到 symbol
,其余部分映射到 date
,解析时会失败。
要获取所需的 URI,模板需要类似于
[Route("api/[controller]")]
public class OptionsController : Controller {
//GET api/options/chain?symbol=SPX&date=2019-01-03T10:00:00
[HttpGet("Chain")]
public IActionResult Chain(string symbol, string date) {
//...
}
}
关于c# - Asp Net core Controller URL参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59621053/