gpt4 book ai didi

asp.net-core-1.0 - 我可以为带有参数的 Controller 添加路由吗?

转载 作者:行者123 更新时间:2023-12-01 23:30:02 25 4
gpt4 key购买 nike

我可以为 Controller 使用路由属性并且该属性有参数,而不仅仅是 ASP.NET Core 中的常量字符串吗?
前任。我想添加下面提到的定义 Controller

 [Route("api/sth/{Id}/sth2/latest/sth3")]
public class MyController : Controller
{
public object Get()
{
return new object();
}
}

最佳答案

你当然可以,但如果你没有很好地计划,这往往会很棘手。

假设您拥有 Startup类设置为默认 WebApi 路由 app.UseMvc()
下面的代码工作正常并返回 ["value1", "value2"]独立于值 {id}curl http://localhost:5000/api/values/135/foo/bar/

[Route("api/values/{id}/foo/bar")]
public partial class ValuesController : Controller
{
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}

这也可以正常工作,在这种情况下返回路由参数中的指定值 135 curl http://localhost:5000/api/values/135/foo/bar/
[Route("api/values/{id}/foo/bar")]
public partial class ValuesController : Controller
{
[HttpGet]
public int GetById(int id)
{
return id;
}
}

但是如果您将这 2 个操作组合在同一个 Controller 中,它将返回 500,因为有 2 种方法可以响应您的请求。

关于asp.net-core-1.0 - 我可以为带有参数的 Controller 添加路由吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39898609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com