【问题标题】:ASP NET MVC: How to specify the route which starts with a specific URL and ends with specific url?ASP NET MVC:如何指定以特定 URL 开头并以特定 url 结尾的路由?
【发布时间】:2022-07-28 02:08:49
【问题描述】:

我有一个带有几个端点的 MVC 控制器。其中之一应匹配以下所有网址:

  1. 代理/拼写检查器/a/check
  2. 代理/拼写检查器/a/b/检查
  3. 代理/拼写检查器/a/b/c/check

所以,我的端点应该匹配所有以“proxy/spell-checker”开头并以“check”结尾的路由。

以下代码抛出异常“一个包罗万象的参数只能作为路由模板的最后一段出现。”:

[HttpPost, Route(template: "proxy/spell-checker" + "/{*url}" + "/check")]
public async Task<HttpResponseMessage> Check(...)
{
    ...
}

如何指定正确的路由模板?

【问题讨论】:

  • 什么是 ?乙?和c?如果它们在每条路线中相同或完全不同?可以发一下url的例子吗?

标签: c# asp.net asp.net-mvc


【解决方案1】:

没有什么比这更简单了

[Route("~/proxy/spell-checker/{a}/{check}")]
[Route("~/proxy/spell-checker/{a}/{b}/{check}")]
[Route("~/proxy/spell-checker/{a}/{b}/{c}/{check}")]
public async Task<HttpResponseMessage> Check(string a, string b, string c, string check)
```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 2013-06-04
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    相关资源
    最近更新 更多