Asp.net mvc 默认路由上ASP.NET MVC中的Url.Content出现问题

Asp.net mvc 默认路由上ASP.NET MVC中的Url.Content出现问题,asp.net-mvc,routes,Asp.net Mvc,Routes,如果我在默认视图/主视图/索引中使用以下行 <script language="javascript" src="<%=Url.Content("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript" ></script> 我在Asp.net使用Request.ApplicationPath时遇到了一个非常类似的问题。。。并将其包装如下 public string AppRoot() {

如果我在默认视图/主视图/索引中使用以下行

<script language="javascript" src="<%=Url.Content("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript" ></script>

我在Asp.net使用Request.ApplicationPath时遇到了一个非常类似的问题。。。并将其包装如下

    public string AppRoot()
    {
        var appPath = Request.ApplicationPath;
        if (appPath.EndsWith("/"))
            return appPath;
        else
            return appPath + "/";

    }

如果您使用IIS6或WinXP Cassini,则应再注册一条路线:

if (Environment.OSVersion.Version.Major < 6) // IIS6 and WinXP Cassini
        {
            routes.MapRoute(
                "Root",
                "",
                new
                    {
                        controller = "Home",
                        action = "Index",
                        id = UrlParameter.Optional
                    }
                );
        }
if(Environment.OSVersion.Version.Major<6)//IIS6和WinXP Cassini
{
routes.MapRoute(
“根”,
"",
新的
{
controller=“Home”,
action=“Index”,
id=UrlParameter。可选
}
);
}

为什么要将id保留为空字符串?我认为这可能是造成问题的原因。您可以通过尝试以下方法获得更好的结果:

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

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

或者,您可以执行以下操作:

routes.MapRoute(
 "Default",                                              // Route name
 "{controller}/{action}/{id}",                           // URL with parameters
 new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);
在web.config文件的appSettings部分创建一个密钥

<add key="DomainName" value="http://http://127.0.0.1:9999/" />

现在,无论何时,只要您想要分配任何图像的“src”值,css文件的javascript,您都可以使用这个键。它将为您定义一个根目录,然后您可以定义文件的放置路径。i、 e.就你而言:

<script language="javascript" src="<%=System.Configuration.ConfigurationManager.AppSettings["DomainName"] %>Scripts/jquery-1.3.2.js" type="text/javascript" ></script>


很抱歉,我无法重现这种行为。你可以发布你的RegisterRoutes()过程的内容和你使用的asp.net mvc的版本吗?正如Marc所说,这不应该发生。我也不能复制它。
<add key="DomainName" value="http://http://127.0.0.1:9999/" />
<script language="javascript" src="<%=System.Configuration.ConfigurationManager.AppSettings["DomainName"] %>Scripts/jquery-1.3.2.js" type="text/javascript" ></script>