.net 3.0中的路由-路由参数和操作参数

时间:2019-11-15 18:15:25

标签: asp.net-core asp.net-core-webapi

.net core 3.0 Web应用程序,带有razorpages和api

我的api控制器位于文件夹“ / api”中,其中一个具有默认的Get方法,我想同时使用route参数和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”映射到路由参数“客户”的位置 但这不会走。

...在“启动”中配置的路由中

 app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
        endpoints.MapControllerRoute(name: "api", pattern: "api/[controller]/[action]");
        endpoints.MapRazorPages();
    });

1 个答案:

答案 0 :(得分:0)

问题似乎出在您如何注册路线上。应该是:

 app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
        endpoints.MapControllerRoute(name: "api", pattern: "api/[controller]");
        endpoints.MapRazorPages();
    });

在您的代码中,您期望的是“ [action]”,因此,“ ABC”文本被映射为操作而不是函数的参数。