return RedirectToAction(...) 更漂亮 url

return RedirectToAction(...) prettier url

在调用 RedirectToAction 方法时,是否有任何可能的方法来维护 RouteConfig.cs 映射中定义的 link 格式?

ex [仅供测试]:

我有这条路线:

routes.MapRoute(
 "Token Verification",
 "Registration/TokenVerification/{ConfernceId}/{TokenType}/{TokenId}/{Email}",
new{
  controller="Registration",
  action="TokenVerification",
  ConfernceId= 0,
  TokenType='[=12=]',
  TokenId="",
  Email=""
 }
);

如果路由正确,我可以调用此 link 和我的操作:

http://localhost:49619/Registration/TokenVerification/2/R/asdasdasd/someone@somewhere.com

但是如果我调用RedirectToAction,它会生成下面的url

http://localhost:49619/Registration/TokenVerification?ConfernceId=2&TokenType=R&Email=someone%40somewhere.com

它也可以工作,但一点也不漂亮!

有什么建议吗?

使用RedirectToRoute(来自MSDN)生成指定路由格式的url。

 return RedirectToRoute("Token Verification", new
        {
            ConfernceId = 0,
            TokenType = "0",
            TokenId = "0",
            Email = "0"
        });

如果要生成链接,请检查以下流程。 使用 Url.RouteUrl(检查 MSDN 资源)。比如说 -

@Url.RouteUrl("DefaultApi", new { httproute=true, controller="Albums", id=3})

会生成/api/Albums/3

在你的情况下,它应该是 -

@Url.RouteUrl("Token Verification", new
{
    controller = "Registration",
    action = "TokenVerification",
    ConfernceId = 0,
    TokenType = "0",
    TokenId = "0",
    Email = "0"
})

它会生成 - /Registration/TokenVerification/0/0/0/0