2010-01-22 19 views
13

Si utilizo la siguiente línea en mi vista predeterminada/Home/ÍndiceProblema con Url.Content en ASP.NET MVC en la ruta por defecto

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

Si navego a esta ubicación utilizando la siguiente URL http : //127.0.0.1: 9999/Home/Índice la página se procesa de forma correcta

<script language="javascript" src="/Scripts/jquery-1.3.2.js" type="text/javascript" ></script> 

Si utilizo la siguiente URL http : //127.0.0.1: 9999/(por defecto conectado a Inicio/Índice) la página presenta esto:

<script language="javascript" src="//Scripts/jquery-1.3.2.js" type="text/javascript" ></script> 

¿Alguien tiene alguna idea de cómo solucionar este problema?

EDIT:

FYI: Estoy usando ASP.NET MVC 2 RC y esta es mi configuración de la ruta:

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

lo siento, pero no puedo reproducir este comportamiento. ¿podría publicar el contenido de su procedimiento RegisterRoutes() y qué versión de asp.net mvc está utilizando? –

+0

Como dice Marc, esto no debería estar pasando. No puedo reproducirlo tampoco. – mare

Respuesta

0

que tenía un problema muy similar con Asp.net Uso de solicitudes. ApplicationPath ... y envuelto de la siguiente manera

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

    } 
1

Si utiliza IIS 6 o WinXP Cassini debería registrar una ruta más:

if (Environment.OSVersion.Version.Major < 6) // IIS6 and WinXP Cassini 
     { 
      routes.MapRoute(
       "Root", 
       "", 
       new 
        { 
         controller = "Home", 
         action = "Index", 
         id = UrlParameter.Optional 
        } 
       ); 
     } 
0

¿Por qué mantiene su identificación como una cadena vacía? Creo que esto puede estar causando el problema. Es posible encontrar mejores resultados por tratar lo siguiente:

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

a este

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

Bueno, también, puede hacer lo siguiente:

crear una clave en la sección appSettings del archivo web.config .

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

Ahora, cada vez que desea asignar el valor "src" de cualquier imagen, JavaScript del archivo CSS, puede utilizar esta clave. se definirá una raíz para usted y luego podrá definir en qué ruta ha colocado su archivo. es decir, en su caso:

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