根据路由配置,Url生成未提供所需结果

本文关键字:结果 路由 配置 Url | 更新日期: 2023-09-27 18:03:58

我正在使用ASP.NET MVC 4

我有一个控制器叫Server,还有两个动作方法叫SearchComponent。我有以下路线配置:

routes.MapRoute("Component",
     "{controller}/{serverId}/{action}",
     new { controller = "Server", action = "Component" },
     new { serverId = @"'d+" });

我正在寻找一个类似的网址:

/Server/12345/Component

我的搜索操作方法:

return RedirectToAction("Component", new { serverId = 12345 });

我的组件操作方法:

public ActionResult Component(int serverId)
{
     return View();
}

生成的url是:

/Server/12345/

这是错误的,它遗漏了"组件"。为什么会这样?

根据路由配置,Url生成未提供所需结果

     new { controller = "Server", action = "Component" },

由于您将默认操作设置为"组件",我认为链接生成足够智能,可以将其关闭。

您将组件定义为默认操作,那么为什么要附加它呢?如果您希望它在路由中,请将其从默认值中删除,并将其添加到RedirectToAction调用中。