我有一个项目,我需要做出特殊的路由,我如何制定自己的规则?

时间:2011-04-12 07:50:06

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

在我自己的网站中,我需要一个页面被#topic知道的东西。

需要看起来像

mywebsite.com#google [这可能我需要通过谷歌作为参数] 要么 mywebsite.com/#google [如果首先无法完成,那么我将如何使用它]

我如何在我的网站上应用这个东西。我需要做的事情

如果有人打开网站mywebsite.com#谷歌内容genrate动态通过[传递谷歌作为参数]

任何人都可以展示我如何为此

进行路由

2 个答案:

答案 0 :(得分:1)

您无法使用路由。 URL中#符号后面的值永远不会被客户端浏览器发送到服务器。因此,例如,如果您请求http://example.com/someaction#google,服务器永远不能仅仅因为浏览器从未发送它而获取值google。唯一的方法是使用javascript(window.location.hash)并可能通过重写网址向服务器发送AJAX请求:http://example.com/someaction?param=google

答案 1 :(得分:-1)

您在Global.asax上有路由表。在方法RegisterRoutes上添加它。我不太确定它是否会起作用,因为我没有测试,但这可以给你一个良好的开端。

        routes.MapRoute(
            "RouteWithSharp",
            "#{page}",
            new { controller = "Home", action = "Index", page = "" }  // Parameter defaults
        );