asp.net - ASP.NET Core 路由匹配第一部分与通配符结尾
问题描述
我想定义一个只需要匹配前几个段的路由,而忽略其余的:
[Route("public/portfolio/{publicPortfolioId}")]
这个想法是任何以开头的东西public/portfolio/myid
都会匹配。这应该导致匹配:
public/portfolio/myid
public/portfolio/myid/something
public/portfolio/myid/something/that/doesnt/exist
解决方案
使用包罗万象的参数。
[Route("public/portfolio/{publicPortfolioId}/{*remainder}")]
您可以通过以下两种方式使用它。
忽略余数:
[Route("public/portfolio/{publicPortfolioId}/{*remainder}")]
public IActionResult DemoAction(int publicPortfolioId)
{
return Json(new
{
publicPortfolioId
});
}
捕获其余部分:
[Route("public/portfolio/{publicPortfolioId}/{*remainder}")]
public IActionResult DemoAction(int publicPortfolioId, string remainder)
{
return Json(new
{
publicPortfolioId,
remainder
});
}
另请参阅:https ://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.1
推荐阅读
- linux - 如何从 Linux 设备驱动程序强制刷新进程的缓存?
- php - 无法使用php从html多选项表单插入mysql
- jquery - 使用jquery对产品价格进行排序
- regex - 需要正则表达式来摆脱带有特定 url 的垃圾邮件脚本标签
- javascript - 无法访问从 React 中的 Web 服务返回的对象值
- node.js - TypeError:无法读取未定义的属性“默认”
- node.js - ObjectionJs andWhereRaw 不是 postgres 和 nodejs 的函数
- python - 在python 3中通过套接字发送文件
- c++ - 在返回时调用 C++ 复制构造函数
- date - Crystal Reports 日期参数格式