2010-01-26 24 views
7

Tengo un proyecto de control AJAX que tiene un archivo .js configurado como un recurso incrustado.¿Por qué mi ScriptReference no encuentra el recurso incrustado?

Mis principales referencias de aplicaciones web de este proyecto, y cuando intento para cargar el control consigo este error:

Assembly does not contain a Web resource with name 'MyFile.js'.

Aquí es mi implementación de getScriptReferences:

public IEnumerable GetScriptReferences() 
{ 
    // create reference to the JS 
    ScriptReference jsReference = new ScriptReference(); 
    jsReference.Assembly = "MyNamespace"; 
    jsReference.Name = "MyNamespace.MyFile.js"; 

    return new ScriptReference[] { jsReference }; 
} 

I No estoy muy seguro de lo que me estoy perdiendo. He intentado cambiar el parámetro Nombre para que sea solo el nombre del archivo, el nombre y el nombre del archivo, el espacio de nombres, el conjunto y el nombre del archivo ... y no tengo suerte. Se agradecen todas las sugerencias.

Respuesta

9

usted tiene que definir la recurso web en código en el ensamblado que contiene su recurso incrustado. Normalmente lo haría en un archivo AssemblyInfo.vb o .cs.

[assembly: System.Web.UI.WebResource(
     "MyNamespace.MyFile.js", 
     "text/javascript", PerformSubstitution = true)] 

Consulte this article si necesita más ayuda.

+0

¡Excelente! Pensé que el archivo Assembly.cs era bueno para algo. Resulta que estaba allí, pero cambié el nombre del archivo, que no se propagó hasta aquí, así que solo tuve que corregir el nombre y estaba listo para empezar. – IronicMuffin

2

¿Sabía usted, asegúrese de añadir una entrada para el archivo JavaScript en sus AssemblyInfo.cs Algo así como:?.

[assembly: WebResource("MyNamespace.MyFile.js", "text/javascript")] 

de lo contrario, el montaje no permitirá el acceso al recurso

Cuestiones relacionadas