如何在.Net Core中具有许多可选路由

铁托

我如何才能以不同的顺序并使用一些可选参数来接受请求?

https://localhost:44314/api/courses/page=2&pageSize=6&language=test&institution=test&area=test

https://localhost:44314/api/courses/page=2&pageSize=6&institution=test&area=test

https://localhost:44314/api/courses/page=2&pageSize=6&area=test&language=test

我尝试了如下:

[HttpGet]
[Route("page={page:int}&pageSize={pageSize:int}&language={language?}&institution={institution?}&area={area?}")]
public async Task<ActionResult<CourseViewModel>> ListCourses(int page, int pageSize, string language="", string institution="", string area="")

我有错误为:

System.ArgumentException:'可选参数必须位于该段的末尾。在“ page = {page}&pageSize = {pageSize}&language = {language?}&institution = {institution?}&area = {area?}”段中,可选参数“ language”后跟“&institution =”。参数名称:routeTemplate'

恩科西

删除路由模板,路由表将使用操作的参数通过请求的URL中的查询字符串来匹配路由

//GET api/courses?page=2&pageSize=6&language=test&institution=test&area=test
//GET api/courses?page=2&pageSize=6&institution=test&area=test
//GET api/courses?page=2&pageSize=6&area=test&language=test
[HttpGet]
[Route("")]
public async Task<ActionResult<CourseViewModel>> ListCourses(int page, int pageSize, string language = "", string institution = "", string area = "")

在这种情况下,顺序无关紧要。一旦它们出现就可以匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在asp.net core中创建具有多个可选字符串参数的路由?

如何在ASP.NET Web API 2中具有可选的请求模型属性?

如何在ASP.NET Core中实施小写路由?

如何在ASP.NET Core中设置启动路由

如何在 ASP .NET Core 中实现基于 slug 的路由?

如何在 ASP.NET Core 中配置端点路由

如何在许多 .NET Core 项目的所有 dll 中获取相同的版权和构建日期信息

如何使.NET Core中的IOptions部分可选?

如何在具有多个项目的 .NET Core 中创建 docker 映像?

我如何配置ASP.NET Core路由以路由到控制器(没有可选动作)(如果存在),然后回退到默认路由?

如何在ASP.NET CORE 3.0中配置路由以使用带有[FromQuery]参数的重载[HttpGet]方法?

如何在.net core中显示图像

如何在.NET Core中写入文件?

如何在 Net Core 中覆盖 SaveChangesAsync?

如何在ASP.NET Core中进行条件路由?

如何在ASP.NET Core 3中从具有全文本索引的数据库中检索产品

如何在Asp.net Core 2.0中允许具有不同发行者的多个JWT

如何在具有不同计时器持续时间的 .net core 后台服务中运行多个任务

在.net core中,如何在Web根目录中下载具有特殊扩展名的静态文件?

如何在ASP .NET Core请求管道中仍具有未完成的子线程的同时停止线程重用?

Identity如何在具有ASP.NET Core MVC 3.1的单个用户帐户的项目模板中工作?

如何在asp.net-core-webapi中创建路由?

如何在 asp.net core 中实现 in-url 路由?

如何在ASP.NET Core 2.0中基于路由配置服务身份验证

如何在asp.net core 3中添加全局路由前缀?

如何在ASP.NET Core中创建通用路由处理程序

如何在ASP.Net Core中更改路由中的DateTime格式?

如何在ASP.NET Core 2中更改CreatedAtAction的路由格式?

如何在ASP.NET Core中处理路由请求“ john.myexample.com”