gpt4 book ai didi

c# - ASP.NET MVC 6 中的属性路由正则表达式约束错误

转载 作者:行者123 更新时间:2023-11-30 16:03:54 25 4
gpt4 key购买 nike

我添加了以下路由属性:

[HttpGet]
[Route("add")]
[Route(@"{id:int}/{inn:regex(^[0-9]+$)}/incBalance:range(0,1)/{dateSet:datetime}/{dateNext:datetime}")]
public IActionResult Add(int id, string inn, int incBalance, DateTime dateSet, DateTime dateNext)
{
....
}

在执行时发生错误:

An unhandled exception occurred while processing the request.

InvalidOperationException: The following errors occurred with attribute routing information:

Error 1:
For action: 'WebProject.Areas.DAS.Controllers.ReportController.Add'
Error: While processing template 'das/report/[action]/{id:int}/{inn:regex(^[0-9]+$)}/incBalance:range(0,1)/{dateSet:datetime}/{dateNext:datetime}', a replacement value for the token '0-9' could not be found. Available tokens: 'action, area, controller'.

我删除 regex(^[0-9]+$) 一切正常

最佳答案

当您在 RouteAttribute 中使用正则表达式时,您必须使用 [[]],因为 [] 是为 Controller 参数( Action 、 Controller 和区域)保留的,如 [Route("api/[ Controller ]/[ Action ]")]

更新:同样适用于 {},您可以使用 {{ 对其进行转义}},但这也适用于您在 app.UseMvc( route => ... ) 中设置的默认路由。

关于c# - ASP.NET MVC 6 中的属性路由正则表达式约束错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36011637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com