【问题标题】:Html ActionLink Route problemHtml ActionLink 路由问题
【发布时间】:2013-03-27 03:49:49
【问题描述】:

我已经定义了以下路线:

routes.MapRoute("Blog",
            "Blog/{controller}/{action}",
            new { controller = "Test", action = "Index" });

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

当我打电话给http://localhost/ 时,所有链接都错误并转到博客:

@Html.ActionLink("About", "About", "Home") 创建以下 URL:

本地主机/博客/关于

但它应该创建

本地主机/关于

为什么 HtmlActionLink 总是在 url 前加上“Blog”?

【问题讨论】:

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


    【解决方案1】:

    ActionLink 将是与您传递给它的参数匹配的第一个路由。
    由于您的 Blog 路由包含 controlleraction 参数,因此它将使用该路由。

    您应该更具体地更改您的 Blog 路由。

    【讨论】:

    • 解决此问题的最佳方法是什么?
    • 我无法让博客路线更具体。它将像一个区域一样处理。 “博客”只是前缀
    • @David:那么你应该使用一个区域。像这样有多个模棱两可的路线会导致麻烦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2011-06-09
    • 2016-06-11
    • 2017-03-26
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    相关资源
    最近更新 更多