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

Treat external javascript file as part of Aspx Page

本文关键字:一部分 Aspx 外部 javascript 文件      更新时间:2023-09-26

我知道您不能在外部javascript文件中使用asp-net服务器标记。这有点麻烦,因为它迫使您在aspx页面中声明需要ClientID的变量,然后在外部javascript文件中引用它们。不太干净。目前我使用脚本管理器的复合脚本来注册我的脚本。。。如果我能将脚本注入并将服务器标记处理为页面的一部分,那就太好了。这可能吗?

我知道有RegisterClientScript,但这似乎也不尊重脚本标记。我想知道是否有人想出了一个解决方案,只需在处理javascript文件之前将其提取到aspx页面中,就可以处理服务器标记。我浏览了整个网页,除了在aspx页面中使用服务器标签或生成控件的id等服务器端和生成脚本之外,没有看到任何好的解决方案。

我知道你不能在外部javascript中使用asp-net服务器标记文件

您可以创建一个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";
    }
}

现在,您可以像使用.js文件一样使用此ASPX页面。