我正在尝试使用WebApi并使用两种方法创建了一个控制器.
我先从以下方法开始:
[HttpGet]
[Route("car/{registration}")]
public object GetCarByRegistration(string registration) {
return null;
}
调试时我在return null上放了一个断点;测试网址http:// localhost:51245 / api / car / yw25jdk工作正常,visual studio停在我的断点处,注册变量在网址中的值相同.
但是当我添加以下方法时:
[HttpGet]
[Route("car/{serial}")]
public object GetCarBySerial(string serial) {
return null;
}
第一个网址停止工作,我开始得到500 – 内部服务器错误.如果我采用第二种方法,那么第一种方法再次起作用.
我无法理解为什么第二种方法打破了第一种方法.
有人可以向我解释一下吗?
解决方法:
那就是因为当你去url http:// localhost:51245 / api / car / yw25jdk时,ASP不知道使用哪种方法,因为两种方法都说他们希望将字符串作为参数.
ASP应该如何知道/ car / {registration}和/ car / {serial]之间的区别,因为它们都是字符串?
您应该更改它们的路由,以使其正常工作
标签:c,asp-net,asp-net-web-api
来源: https://codeday.me/bug/20190611/1221972.html