ASP.NET Пользовательский серверный элемент управления с большим количеством встроенных JavaScript и других статических файлов

#javascript #.net #asp.net #custom-server-controls

#javascript #.net #asp.net #пользовательские серверные элементы управления

Вопрос:

Я пытаюсь создать пользовательский серверный элемент управления с множеством JavaScript встроенных и других статических файлов.

Моя проблема в том, как их легко объединить и зарегистрировать. У меня есть следующий подход, но я не думаю, что было бы неплохо регистрировать каждый отдельный файл javascript один за другим.

Это код, который я поместил в свой AssemblyInfo.cs файл :

 [assembly: WebResource("CustomControl.Scripts.Default.js", "text/javascript")]
  

Следующий код предназначен для моего пользовательского элемента управления для регистрации .js:

 protected override void OnPreRender(EventArgs e) {

    base.OnPreRender(e);
    string resourceName = "CustomControl.Scripts.Default.js";

    ClientScriptManager cs = this.Page.ClientScript;
    cs.RegisterClientScriptResource(typeof(CustomControl.MyControl), resourceName);
}
  

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

 CustomControl/scripts/default.js
  

Ответ №1:

В Visual Studio вы можете встраивать ресурсы в сборку, а затем программно извлекать их следующим образом:

 // TODO: Get the correct assembly, this is just an example.
var assembly = GetType().Assembly;
var resourceNames = assembly.GetManifestResourceNames();

foreach (var resourceName in resourceNames)
{
    using (var stream = assembly.GetManifestResourceStream(resourceName))
    {
        using (var reader = new StreamReader(stream))
        {
            // This will contain the contents of the embedded resource
            string resource = reader.ReadToEnd();
        }
    }
}
  

Вам, конечно, нужно настроить приведенный выше код в соответствии с вашими требованиями, но основы должны быть одинаковыми.