【发布时间】:2018-08-21 19:09:46
【问题描述】:
我知道这个问题已经被问过很多次了,但没有人真正总结出来。
我目前正在使用具有 Web api 控制器的 .NET Core 后端。
我知道在 .NET Core 中有多种处理路由的方法,例如
使用约束
[HttpGet("{id:int}")]
public string GetById(int id)
{
return "item " + id;
}
创建默认路由
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
构建 RESTful 路由
[Route("api/[controller]")]
public class ValuesController : Controller
{
// GET api/values
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] {"hello", "world!"};
}
// POST api/values
[HttpPost]
public void PostCreate([FromBody] string value)
{
}
}
还有更多选择。
但是我就是不知道如何在一个路由中传递多个参数。
在我的情况下,我必须同时更新两个不同的对象,并且必须使用 HTTP Patch 或 HTTP Put 请求。
我可以使用 api/ExampleName/Id 之类的东西,但我需要的是 api/ExampleName/ObjectOneID&ObjectTwoID
有人知道如何构建这样的东西吗?
我想过在启动文件中创建一个默认路由并在此处进行配置。但是我想它需要一个特定的语法来读取多个参数
【问题讨论】:
标签: c# rest asp.net-core routes