当我包含参数时,为什么提取不成功

时间:2019-10-18 12:00:30

标签: reactjs api asp.net-core

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

这是我的提取方法

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

            });

这是我的api get方法:

[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],但结果相同。

1 个答案:

答案 0 :(得分:0)

您要致电api/SampleData/${this.props.match.params.orderId}

代替api/SampleData/GetTemplate/${this.props.match.params.orderId}

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

如果您想参与其中,请将您的route属性设置为[Route("api/[controller]/[action]")]