在ASP.Net中自定义处理页面/标签

时间:2010-08-02 04:08:25

标签: javascript asp.net include

有人可以告诉我如何在ASP.NET提供的JS页面中实现自己的自定义标记吗?

基本上我想要实现的是通过添加一些代码来为我的Javascript文件创建“包含”的方法。

//Include Src="MyJavascriptFileLocation.JS"

然后让ASP.Net处理程序提供我的javascript文件,同时动态地将引用的javascript文件附加到写入包含的位置。

有人可以指导我完成这个目标吗?

2 个答案:

答案 0 :(得分:1)

您可以通过在HTML注释中包含Javascript文件的名称然后重载System.Web.UI.Page对象的Render方法来搜索这些注释并将其替换为JavaScript文件中的文本来实现此目的。

在你的标记中:

<!-- Include Src="MyJavascriptFileLocation.JS" -->

在您的C#代码中:

        protected override void Render(System.Web.UI.HtmlTextWriter writer)

        {

            // First, grab the HTML that would have been sent

            System.IO.StringWriter stringWriter = new System.IO.StringWriter();

            HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);

            base.Render(htmlWriter);

            string html = stringWriter.ToString();



            // Look for comment
            int start = html.IndexOf("<!-- Include");



            // If found...

            if (start >= 0)

            {

                             // Code here to replace comment with JavaScript file
            }

            // Output our refactored HTML

            writer.Write(html);
       }

如果每页需要多个JavaScript文件,则可以使用while循环并重复搜索并替换,直到找到所有这些文件。

我不确定这是最好的事情。动态添加JavaScript会真的搞乱缓存等。您尽量减少客户端需要进行的请求数量。

如果您要求的内容有意义并且只是回答问题,我会留给您。你比我更了解你想要实现的目标。

答案 1 :(得分:0)

我刚才意识到你可能真的在问如何将JavaScript文件包含到另一个JavaScript文件中。在这种情况下,您的问题并不是特定于.NET的,因为JavaScript在客户端(在浏览器中)被解析和执行。

如果这是你想要的,这里有一个链接来讨论它:

http://www.cryer.co.uk/resources/javascript/script17_include_js_from_js.htm