c# - WebApi 500 内部服务器错误

标签 c# asp.net asp.net-web-api

我正在试验 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/

相关文章:

c# - 如何知道反序列化类的类型?(或对象)

c# - IClassFactory 由于以下错误 : 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) 而失败

c# - WebApi Controller 返回空数据

c# - JWT 无法将 header 解码为 Base64Url 编码字符串

c# - 从 linq 查询突出显示 ListView 中的文本

c# - 在 MVC + DDD + 存储库模式项目中应用安全性的内容是什么?

C#如何比较两个字符串并指出哪些部分不同

asp.net - 404错误代码重定向回主页

c# - 用仅包含数值的行填充 Gridview 的查询没有给我想要的结果

c# - 'System.Net.Http.ObjectContent <T>'不包含带有2个参数的构造函数