【问题标题】:Why wont my fetch finish when i'm including parameters当我包含参数时,为什么我的提取不会完成
【发布时间】:2019-10-18 12:00:30
【问题描述】:

我一直在尝试从我在 React 中的一个组件中获取一些数据,但是当我在 url 中包含一个参数时,什么都没有发生,并且 fetch 方法永远不会完成。

这是我的获取方法

fetch(`api/SampleData/GetTemplate/${this.props.match.params.orderId}`)
            .then(response => response.json())
            .then(data => {
                this.setState({ Template: data, loading: false  });

            });

这是我的 api 获取方法:

[HttpGet("{id}")]
        public ShoppingTemplate GetTemplate(int id)
        {
            var template = new PentaShoppingorder
            {
                OrderId = id.ToString(),
                Date = DateTime.Now.ToString(),
                Title = "Template title",
                Price = 5000,
                Supplier = Supplier[1],

            };
            return template;
        }

当我查看调试器时,url 似乎很好,所以我假设它的 api,这就是我无法找出问题所在的问题。

我也尝试添加 [FromRoute],但结果相同。

【问题讨论】:

  • 你能在你的控制器上显示Attributes吗?
  • [Route("api/[controller]")]

标签: reactjs api asp.net-core


【解决方案1】:

你想拨打api/SampleData/${this.props.match.params.orderId}

而不是api/SampleData/GetTemplate/${this.props.match.params.orderId}

由于您当前的路线约定是[Route("api/[controller]")],因此您正在从组合中排除该操作。

如果您想获得所涉及的操作,请将您的路线属性设置为[Route("api/[controller]/[action]")]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2011-02-10
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多