asp.net - HTML.ActionLink() 生成不正确的 URL

标签 asp.net asp.net-mvc razor url-routing

我很难让 HTML.ActionLink() 创建正确的链接。

当我在 http://localhost:49242/

我的选择是:

但是当我导航到 http://localhost:49242/en-us/PinnedSites 时我的选择是:

当然,所有这些网址都会失败。

这是我的 html:

.cshtml(Html/razor)

<li id="nav_pinning">
    @Html.ActionLink( "pinned sites", "index", "PinnedSites")</li>
<li id="nav_addons">
    @Html.ActionLink("add-ons", "index", "addons")</li>
<li id="nav_control">
    @Html.ActionLink("tracking protection lists", 
                    "index", 
                    "trackingprotectionlists",
                    null,
                    null)</li>

Global.asax.cs

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("favicon.ico");
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
            "Default", // Route name
            "{culture}/{controller}/{action}", 
            new { culture = "en-us", 
                controller = "Home", 
                action = "Index", 
            }
        );
    }

我的问题出在哪里?/PinnedSites/有可能实际上并没有转到 PinnedSitesController 吗?

(我会积极关注这一点,如果您希望我尝试或提供更多代码,请发表评论。)

最佳答案

您的项目中有 HomeController 吗?如果是这样,您应该按照以下方式注册默认 Controller :

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

但是,除此之外,您是否尝试过直接将路由直接发送到您的 PinnedSites Controller ?

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("favicon.ico");
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
            "Default", // Route name
            "{culture}/{controller}/{action}", 
            new { culture = "en-us", 
                controller = "PinnedSites", 
                action = "Index", 
            }
        );
    }

关于asp.net - HTML.ActionLink() 生成不正确的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8127221/

相关文章:

razor - 在 Umbraco Razor 导航中输出顶级节点

asp.net - ASP.NET 中模态弹出窗口的最佳选择?

asp.net - ASP.net 中的错误 : BC30037: Character is not valid

python - 如何使用python向服务器提交表单并通过互联网从服务器获取csv文件?

c# - Entity Framework ..自引用表..获取深度=x的记录?

c# - 在 MVC HTML Helper 中将 Javascript 代码与 HTML 一起注入(inject)

c# - 如果用户使用 ASP .Net Identity 通过外部登录提供程序登录,如何保存用户上次登录日期?

c# - 在 C# 中将字典作为参数传递给 Http.Post

asp.net-mvc - ASP.net MVC3 - 带有 Ajax 回发的 Razor View 和部分 View

javascript - JQuery 事件处理以及通过 POST 检索的数据?