使用HTML.RoutLink添加到现有URL

时间:2010-11-21 07:18:24

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

有没有办法使用HTML.RouteLink()添加到现有网址上。例如,我有

<%: Html.RouteLink(link.Text, link.RouteValues) %>

我的控制器是Pages,我的行动很多。所以生成的URL将是

本地主机/页/ somestring

这很好。但是,当我访问http://localhost:1241/Admin/部分

时,我会链接生成的网址

本地主机/管理/页/ somestring

而不是

本地主机/页/ somestring

localhost / Page / somestring 网址在我的global.asx文件中设置为路由以查看网页, localhost / Admin / Page / somestring 网址为路由编辑页面。

我希望这是有道理的,谢谢大家的帮助!

泰龙

这是我的两条路线可以给你一些想法


routes.MapRoute(null,"Pages/{page}", new { controller = "Pages", action = "Page" });

routes.MapRoute("Edit Pages", "Admin/Page/{page}",new { controller = "Admin", action = "EditPage", id =UrlParameter.Optional });

1 个答案:

答案 0 :(得分:0)

你还没有给出足够的信息来彻底回答这个问题。据我了解,无论您是否在管理员中,您都有一部分使用相同的代码来生成URL。但是,您希望相同的代码生成不同的URL,具体取决于您是否在管理员中。

这里的诀窍是你需要路线值来匹配你想要匹配的路线的默认值。

在这种情况下,要链接到非管理员:

Html.RouteLink(linkText, new {controller="Pages", action="Page", page = thePage})

但要链接到管理版

Html.RouteLink(linkText, new {controller="Admin", action="EditPage", page = thePage})

所以你需要做的是确保partial获取正确的值,具体取决于它所使用的上下文。