asp.net mvc3本地化路由定义

时间:2013-08-05 18:32:57

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

您好我正在努力解决以下问题:

我有以下路线,一个是默认,另一个是本地化链接。当我尝试访问网址时:http://domain.com/en/Home/Index一切似乎都没问题。但是,当我尝试类似:http://domain.com/en/Home/Index/5时,我会遇到一系列错误:

无法找到路径'/en/Scripts/jquery.ui.js'的控制器。

无法找到路径'/ en / Content / Images / ...'的控制器。

依旧......

但我有另一种情况..当我尝试访问一个网址时:

http://domain.com/en/Home/Index?id=5一切似乎都没问题。

以下是我的路线定义:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("favicon.ico");
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        RouteTable.Routes.IgnoreRoute("{*favicon}",
                                      new {favicon = @"(.*/)?favicon.([iI][cC][oO]|[gG][iI][fF])(/.*)?"});

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

        routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}",
            new{controller = "Home",action = "Index",id = ""}
            );

    }

如果有人有一些提示,听听会很愉快。谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于在链接.css和.js文件时使用直接指针 href

在处理虚拟/子目录时,最好通过@Url.Content("~/Scripts/SomePlugin.js")

完成与静态文件的所有链接

但不像传统的../../Scripts/SomePlugin.js链接