WebApi 500内部服务器错误

Omm*_*mmy 4 c# asp.net asp.net-web-api

我正在尝试使用WebApi并使用两种方法创建了一个控制器.

我先从以下方法开始:

    [HttpGet]
    [Route("car/{registration}")]
    public object GetCarByRegistration(string registration) {
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

在调试时我在return null;测试的url 上设置了一个断点,http://localhost:51245/api/car/yw25jdk它工作正常,visual studio停在我的断点处,registration变量在url中是相同的值.

但是当我添加以下方法时:

    [HttpGet]
    [Route("car/{serial}")]
    public object GetCarBySerial(string serial) {
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

第一个网址停止工作,我开始了500 - Internal Server Error.如果我采用第二种方法,那么第一种方法再次起作用.

我无法理解为什么第二种方法打破了第一种方法.

有人可以向我解释一下吗?

小智 7

那就好了,因为当你去url时,ASP不知道使用哪种方法, http://localhost:51245/api/car/yw25jdk因为两种方法都说他们希望将字符串作为参数.

ASP怎么知道之间的区别/car/{registration}/car/{serial],因为他们两个都是字符串?

您应该更改它们的路由,以使其正常工作