【问题标题】:ASP.NET MVC 3 Routing With No Specific Controller没有特定控制器的 ASP.NET MVC 3 路由
【发布时间】:2012-07-03 20:18:06
【问题描述】:

我有一个非常有趣的案例:

我有一个网站已经可以使用了

但我也希望这些网址也能正常工作

农场部分是假的,它除了存在于 SEO 之外什么都不做,没有与之关联的相应控制器或操作

基本上,我已经有很多路由,但如果在主机名“mysite”之后附加“farm”,我也希望该站点的行为完全相同。所以它有点像一个子目录,其行为与主站点上的行为完全相同。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 routing seo


    【解决方案1】:

    您可以添加带约束的路线。确保它在默认路由之上。

    routes.MapRoute(
        "Farm", // Route name
        "farm/{controller}/{action}", // URL with parameters
        new { controller = "Home", action = "Index"} // Parameter defaults
    );
    

    它只是确保以“farm”开头的 URL 从第 2 段获取控制器名称,从第 3 段获取操作名称。

    【讨论】:

    • 另外,如果您不希望您的传出 URL 拥有农场,请记住在第一个路由之后注册此路由
    • 我花了一段时间才注意到订单确实很重要。
    【解决方案2】:

    我假设你有一个 FarmController,你可以让它们路由到你的 FarmController

    routes.MapRoute(
        "Farm", // Route name
        "Farm/{controller}/{action}", // URL with parameters
        new { controller = "Farm", action = "Index"} // Parameter defaults
    );
    

    【讨论】:

    • 对不起,我没有早点说,但农场部分只是一个虚假的 seo 友好文本。没有相应的控制器。
    • 那么你可以使用查询字符串来获取它
    猜你喜欢
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2014-11-18
    • 2010-12-15
    相关资源
    最近更新 更多