有没有办法使用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 });
答案 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获取正确的值,具体取决于它所使用的上下文。