【问题标题】:No route matches the supplied values RedirectToRoute没有路由匹配提供的值 RedirectToRoute
【发布时间】:2018-03-12 21:34:14
【问题描述】:

我设置了以下路线

[HttpGet("bar")]
public IActionResult Foo()

当我使用“/bar”访问网站时,正如预期的那样,我被定向到Foo

但是,如果我尝试重定向到“bar”,则会收到错误消息:

public async Task<IActionResult> Index()
{
    return RedirectToRoute("bar");
}

没有路由与提供的值 RedirectToRoute 匹配

为什么RedirectToRoute 不起作用?

【问题讨论】:

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


    【解决方案1】:

    问题在于“bar”是路由模板,而不是路由名称。为了重定向到特定路由,必须命名该路由。在这种情况下,您可以这样做

     [HttpGet("bar", Name = "bar")]
    

    这同样适用于创建路由,如Url.RouteUrlnew CreatedAtRouteResultCreatedAtRoute等。路由name必须在所有情况下都存在。

    必须明确指定路由名称的好处是您现在可以更改模板而不会破坏命名路由。

     [HttpGet("bar?{data?}", Name = "bar")]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 2019-02-03
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      相关资源
      最近更新 更多