.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();
});
答案 0 :(得分:0)
问题似乎出在您如何注册路线上。应该是:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapControllerRoute(name: "api", pattern: "api/[controller]");
endpoints.MapRazorPages();
});
在您的代码中,您期望的是“ [action]”,因此,“ ABC”文本被映射为操作而不是函数的参数。