c# - 如何在路由控制器中传递两个参数
问题描述
我想传递两个参数id
并page
采取行动。但是当我使用这段代码时
[HttpGet]
[Route("Actor/{id:int}/{page:int}")]
public async Task<IActionResult> Actor(int id, int page, CancellationToken cancellationToken )
{
var data = await _videoService.GetActorVideos(id, page, cancellationToken);
return View(data);
}
程序启动时出现路由错误。它永远不会到达该_videoService
行,并且Actor
不会执行该操作。
并告诉我这个错误
索引(从零开始)必须大于或等于零且小于参数列表的大小。
解决方案
您的代码片段对我有用。我稍微修改了它,并在以“var data”开头的行上放置了一个断点。如果我通过浏览器导航到解析为此路由的 URL,则所有参数都有一个值。
[HttpGet]
[Route("Actor/{id:int}/{page:int}")]
public async Task<IActionResult> Actor(int id, int page, CancellationToken cancellationToken )
{
var data = (id, page, cancellationToken);
return View(data);
}
推荐阅读
- linkedin - 公司页面 API - V1 弃用
- javascript - 我试过这个控制台问题。TypeError:无法在“Node”上执行“appendChild”:参数 1 不是“Node”类型
- c# - ILogger 到 Application Insights
- google-apps-script - 插入文本时插入幂和分数
- java - 在 Java 中随机选择函数
- python - 使用 numpy 查找矩阵中的最大行(长度最长的行)
- swift - 带有ReplyKit swift视频的WebRTC在10秒后冻结
- javascript - 如何在我的 javascript 代码中加快图像加载速度
- c# - Linq 集合排序
- reactjs - 如何在 React 中自动执行 POST 响应内容,即脚本标签?