为什么Guid参数在ASP方法中作为默认值到达?

vtwuwzda  于 2023-01-06  发布在  .NET
关注(0)|答案(1)|浏览(143)

下面的代码:

[HttpGet]
    [Route("{id}")]
    public Task<ActionResult<Model?>> Get(
        Guid id)
    {
        return ReadModel(id);
    }

在监视中,如果我检查Request.Path,我可以看到路径是/api/Model/798f2724-c01b-4836-9603-5b64acaed464,但是当我检查id时,它的值是00000000-0000-0000-0000-000000000000
我从 Postman 呼叫此邮件,URL如下https://localhost:7685/api/Model/798f2724-c01b-4836-9603-5b64acaed464
我也尝试过在方法中添加这个对象,只是为了看看Guid是否有问题,但是这个对象被正确地创建了:

Guid temp = new Guid("798f2724-c01b-4836-9603-5b64acaed464");

我应该做些什么来告诉asp如何解析guid吗?

omqzjyyz

omqzjyyz1#

它应该工作正常,如果它是有效的再次检查id。我会添加一个类型验证的行动属性,并添加异步,因为你正在使用一个任务

[HttpGet("{id:Guid}")]
        public async Task<ActionResult<Model?>> Get(Guid id)

或者如果操作中没有任何异步代码

[HttpGet("{id:Guid}")]
        public ActionResult<Model?> Get(Guid id)

相关问题