ASP.NET自定义服务器控件,包含大量嵌入式JavaScript和其他静态文件

时间:2011-10-10 18:54:50

标签: javascript .net asp.net custom-server-controls

我正在尝试创建一个包含大量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);
}

此外,从Web应用程序中获取文件非常棒,如下所示:

CustomControl/scripts/default.js

1 个答案:

答案 0 :(得分:0)

在Visual Studio中,您可以embed resources in the assembly然后以编程方式检索它们:

// 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();
        }
    }
}

您当然需要根据您的要求调整上述代码,但基本应该是相同的。