#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();
}
}
}
Вам, конечно, нужно настроить приведенный выше код в соответствии с вашими требованиями, но основы должны быть одинаковыми.