获取不通过网址将参数发送到api控制器的请求

时间:2019-05-23 16:58:34

标签: asp.net-core-webapi asp.net-core-2.2

我在NetCore 2.2网络游戏中有这个简单的API控制器,该控制器应该返回基于dungeonID(Guid)的怪物列表。

所以我使用URL,将dungeonID的guid传递给该控制器,如下所示:

  

https://localhost:44361/MonsterList/GetMonsters/2f14c8gf-2e7e-466a-bcbg-f4440e92b3dg

但是当我逐步执行代码时,我只看到dungeonID的全零:

    public async Task<JsonResult> GetMonsters(Guid dungeonID)
    {
        var monsters = await _context.MonsterList.Where(c => c.DungeonID == (dungeonID)).ToListAsync();

        return Json(monsters);
    }

这什么都不返回,因为出于我不知道的原因,dungeonID总是全零。

但是如果我在dungeonID中进行硬编码,这确实可行:

  

https://localhost:44361/MonsterList/GetMonsters

public async Task<JsonResult> GetMonsters()
{
    var monsters = await _context.MonsterList.Where(c => c.DungeonID == Guid.Parse("2f14c8gf-2e7e-466a-bcbg-f4440e92b3dg")).ToListAsync();

    return Json(monsters);
}

我已经看到很多类似的帖子,例如:

asp.net webapi 2 post parameter is always null

Post parameter is always null

但是似乎没有任何作用。

如何添加传递Guid参数的功能?

谢谢!

1 个答案:

答案 0 :(得分:1)

一点是2f14c8gf-2e7e-466a-bcbg-f4440e92b3dg不是GUID / UUID。只需尝试使用正确的GUID即可:

https://www.scala-sbt.org/1.x/docs/Multi-Project.html

https://localhost:44384/api/values/GetMonsters/2e6ae748-10c2-4e23-84c3-9d3db7c09631