我正在试验 WebApi 并使用两种方法创建了一个 Controller 。
我先从下面的方法入手:
[HttpGet]
[Route("car/{registration}")]
public object GetCarByRegistration(string registration) {
return null;
}
调试时,我在 return null;
测试了 url http://localhost:51245/api/car/yw25jdk
时设置了一个断点,它工作正常,visual studio 停在我的断点和 registration
变量在 url 中的值相同。
但是当我添加以下方法时:
[HttpGet]
[Route("car/{serial}")]
public object GetCarBySerial(string serial) {
return null;
}
第一个 url 停止工作,我开始收到 500 - Internal Server Error
。如果我采用第二种方法,那么第一种方法再次起作用。
我不明白为什么第二种方法会破坏第一种方法。
有人可以给我解释一下吗?
最佳答案
那是因为当您转到 url http://localhost:51245/api/car/yw25jdk
时 ASP 不知道要使用哪种方法,因为这两种方法都表示它们需要一个字符串作为它们的范围。
既然 /car/{registration}
和 /car/{serial]
都是字符串,ASP 应该如何区分它们?
你应该改变其中一个的路线,让它工作
关于c# - WebApi 500 内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875139/