将外部javascript文件视为Aspx Page的一部分

时间:2012-08-02 17:36:20

标签: c# javascript asp.net

我知道你不能在外部javascript文件中使用asp net server标签。这有点痛苦,因为它会强制您在aspx页面中声明需要ClientID的变量,然后在外部javascript文件中引用它们。不是很干净。目前我使用脚本管理器的复合脚本来注册我的脚本...如果我可以注入脚本并处理服务器标签就好像它是页面的一部分那样会很好。这可能吗?

我知道有RegisterClientScript,但这似乎也不尊重脚本标签。我想知道是否有人提出解决方案只是拉出javascript文件的内容并在处理之前将它们推入aspx页面,以便可以处理服务器标签。我已经浏览了整个网络,除了在aspx页面中使用服务器标签或生成控件ID等服务器端和生成脚本之外,没有看到任何好的解决方案。

1 个答案:

答案 0 :(得分:2)

  

我知道你不能在外部javascript中使用asp net server标签   文件

您可以创建一个ASPX页面来生成动态javascript

<%@ Page Language="C#" AutoEventWireup="false"
CodeFile="script.aspx.cs" Inherits="scripts_script"
EnableViewState="false" StyleSheetTheme="" %>
function test() {
    testinfo.innerHTML = "<%= MyVariable %>";
}

确保设置StyleSheetTheme=""否则运行时将插入您不想要的<head>

在后面的代码中将ContentType设置为application/x-javascript

using System;

public partial class scripts_script
{
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        this.Response.ContentType = "application/x-javascript";
    }
}

现在您可以将此ASPX页面用作.js文件。