热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ASP.NETCore2.1Routing-CreatedAtRoute-没有路由匹配提供的值

如何解决《ASP.NETCore2.1Routing-CreatedAtRoute-没有路由匹配提供的值》经验,为你挑选了1个好方法。

我有以下情况

[Route("api/[controller]")]
[ApiController]
public class FooController: ControllerBase
{
    [HttpGet("{id}", Name = "GetFoo")]
    public ActionResult Get([FromRoute]Guid id)
    {
        // ...
    }
}

[Route("api/[controller]")]
[ApiController]
public class Foo2Controller: ControllerBase
{

    [HttpPost("/api/Foo2/Create")]
    public ActionResult Create([FromBody]PostFooBindModel postBindModel)
    {
        //...
        return CreatedAtRoute("GetFoo", new { id = getBindModel.Id }, getBindModel);

    }
}

PS:getBindModel是GetFooBindModel类型的实例.我正在接受

InvalidOperationException:没有路由与提供的值匹配.

我也试过换线 GetFooBindModel

return CreatedAtRoute("GetFoo", new { id = getBindModel.Id }, getBindModel);

但仍然是同样的错误.



1> 小智..:

FooController中的操作方法(Get)的名称与HttpGet Attribute上的路由名称相匹配.您可以在c#中使用nameof关键字:

[HttpGet("{id}", Name = nameof(Get))]
public ActionResult Get([FromRoute]Guid id)
{
          ...
}

并而不是硬编码路径名称使用nameof再次:

return CreatedAtRoute(nameof(FooController.Get), new { id = getBindModel.Id }, getBindModel);

然后再试一次;


推荐阅读
author-avatar
凯米宝贝青岛Pacific早教中心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有