返回RedirectToAction(...)漂亮的网址
有保持作为RouteConfig.cs
映射调用RedirectToAction
方法时定义了我的链接的格式,任何可能的方式?返回RedirectToAction(...)漂亮的网址
EX [只是为了测试]:
我有这样的路线:
routes.MapRoute(
"Token Verification",
"Registration/TokenVerification/{ConfernceId}/{TokenType}/{TokenId}/{Email}",
new{
controller="Registration",
action="TokenVerification",
ConfernceId= 0,
TokenType='\0',
TokenId="",
Email=""
}
);
我可以把这个链接,我的行动,如果被正确地路由:
http://localhost:49619/Registration/TokenVerification/2/R/asdasdasd/[email protected]
但是,如果我叫RedirectToAction
,它会生成以下url
它也在努力,但它是不漂亮了!
有什么建议吗?
使用RedirectToRoute
(从MSDN)生成URL这是在规定航线格式。
return RedirectToRoute("Token Verification", new
{
ConfernceId = 0,
TokenType = "0",
TokenId = "0",
Email = "0"
});
如果要生成链接,请检查下面的perocess。 使用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
它似乎是合乎逻辑的解决方案的问题,但我不能让它的工作,我不断收到'在路由表中的路由我搜索所提供的values.'匹配网上类似的问题,但仍然无法解决它。我按照建议的[在这里]传递相同类型和相同顺序的参数,如在定义的路由中(http://stackoverflow.com/questions/5690/mvc-preview-4-no-route-in-the-route-table - 匹配 - 所述提供的值) – simsim
TokenId和电子邮件look可选的,因为你是将它们设置为string.Empty。这些是路径值,所以它们必须具有路由才能工作的值。 –
@EmmaMiddlebrook,谢谢你,这是我遇到的路线 – simsim