2010-10-12 24 views
7

He visto una gran cantidad de ejemplos que utilizan para hacer referencia a Url.Content javascript, MasterPages forma en MVC 2.Url.Content en ASP.net MVC 2.0

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

Pero en tiempo de ejecución Tengo fracaso ,

Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

compilador mensaje de error: CS0103: el nombre 'URL' no existe en el contexto actual.

No he encontrado dónde se declara el espacio de nombres Url, ¿deberían utilizarse ensamblados adicionales?

VS2010, IIS 7, ASP.net MVC 2.0

+0

Si saca esa línea, ¿su aplicación se ejecuta correctamente? – awrigley

Respuesta

8

Asegúrese de que su página maestra herede System.Web.Mvc.ViewMasterPage

+0

¡Es cierto! ¡Empezó a funcionar! –

1

editar eliminado, como comillas simples son tratados como carácter literal, por lo que hace 'demasiados caracteres en literal' de error. La causa más probable sigue siendo un error tipográfico, en mi humilde opinión.

post original (re sigue en pie la clase UrlHelper):

Url.Content(): URL aquí es un método de ayuda, un poco como los ayudantes HTML o Ajax.

En el código, creo que su clase es:

System.Web.Mvc.UrlHelper

Es decir, el espacio de nombres es System.Web.Mvc.

Por lo tanto, es muy extraño que no pueda usarlo si, en realidad, está utilizando la especificación que detallamos anteriormente.

+0

En serio ... no hay ningún ensamblado System.Web.Mvc.UrlHelper, no hay tal espacio de nombres. –

+0

No dije que existiera. Dije que hay una clase llamada UrlHelper en el espacio de nombres System.Web.Mvc. – awrigley

+0

Simplemente otro error: CS1012: Demasiados caracteres en el carácter literal, en la misma línea ... Tan extraño ... ( –

2

Alex,

intento de añadir el siguiente método de extensión y ver si se consigue que está más lejos el uso

public static partial class HtmlHelperExtensions 
{ 
    public static string Script(this HtmlHelper html, string path) 
    { 
     var filePath = VirtualPathUtility.ToAbsolute(path); 
     HttpContextBase context = html.ViewContext.HttpContext; 
     // don't add the file if it's already there 
     if (context.Items.Contains(filePath)) 
      return ""; 
     return "<script type=\"text/javascript\" src=\"" + filePath + "\"></script>"; 
    } 
} 

:

<%=Html.Script("~/Scripts/jquery-1.4.2.min.js")%> 

Sé que no va a responder a su pregunta directamente , pero le permitirá moverse fwd ...

+0

jim, gracias! esto es realmente aceptable ... pero trataría de averiguarlo ¿Por qué Url.Content simplemente no existe? Estoy buscando en Google ahora, no pude encontrar una documentación para ello ... ¿tal vez se ha ido realmente? –

Cuestiones relacionadas