2010-01-26 6 views
7

У меня есть проект управления AJAX, который имеет .js-файл, который настроен как встроенный ресурс.Почему мой ScriptReference не находит встроенный ресурс?

Мои основные ссылки веб-приложений этот проект, и когда я пытаюсь загрузить элемент управления я получаю эту ошибку:

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

Вот моя реализация 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 Я не совсем уверен, чего не хватает. Я попытался изменить параметр Name, чтобы быть просто именем файла, пространством имен и имени файла, пространством имен, сборкой и именем файла ... и мне не повезло. Любые предложения оцениваются.

ответ

9

вы должны определить веб-ресурс в коде на сборке, содержащий встроенный ресурс. Обычно вы делаете это в файле AssemblyInfo.vb или .cs.

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

См. this article, если вам нужна дополнительная помощь.

+0

Отлично! Я понял, что файл Assembly.cs хорош для чего-то. Оказывается, он был там, но я переименовал файл, который не распространялся сюда, поэтому мне просто нужно было исправить именование и было хорошо идти. – IronicMuffin

2

вы убедитесь, чтобы добавить запись для файла Javascript в ваших AssemblyInfo.cs Что-то вроде:.

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

в противном случае узел не будет разрешен доступ к ресурсу

Смежные вопросы