asp.net-core - .net 3.0 中的路由 - 路由参数和操作参数
问题描述
.net core 3.0 web 应用程序,带有 razorpages 和 api
我的 api 控制器位于文件夹“/api”中,其中一个具有默认的 Get 方法,我想使用路由参数和 2 个其他值调用该方法
[HttpGet("{customer}")]
public IActionResult Get(string customer, string size, string color)
尝试使用参数路由到这样的路径
http get localhost://site-root/api/mycontroller/ABC?size=val1&color=val2
其中“ABC”将映射到我的控制器中的路由参数“customer”但是这不会路由。
...在启动中配置的路由中
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapControllerRoute(name: "api", pattern: "api/[controller]/[action]");
endpoints.MapRazorPages();
});
解决方案
问题似乎在于您如何注册路线。它应该是:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapControllerRoute(name: "api", pattern: "api/[controller]");
endpoints.MapRazorPages();
});
在您的代码中,您期望一个“[action]”,因此,“ABC”文本被映射为一个动作,而不是作为函数的参数。
推荐阅读
- sql - 遍历 SQLite 查询的结果作为后续查询的输入
- google-apps-script - 尝试将数据从源 Google 工作表的最后一行复制并粘贴到目标工作表的最后一行时似乎出现错误
- kubernetes - cop 文件从远程容器到本地机器?
- wpf - WPF 材料设计日期选择器(选择范围又名范围选择器)
- c# - 无法使用 [] 将索引应用于数组类型的表达式 - VB.NET 到 C# 的转换
- snowflake-cloud-data-platform - 从雪花中的字符串中提取特定文本
- python - 为什么我尝试更改背景颜色时出错?Python Kivy
- angular - 我可以仅使用一个更新的字段将对象发送到流吗?
- doxygen - Doxygen 工具,脚本错误“属性 '$' 的值为 null 或未定义,不是函数对象”
- julia - 在 Windows 上的 Julia 中构建 Pardiso 的问题