ASP.NET - 连接 html、javascript 和 CSS 的问题

ASP.NET - issues with connecting html, javascript and CSS

我有这段代码,它只是显示一个弹出窗口,其中包含 2 个图像、一个背景和一个可点击的图像(按钮)。这个想法是,当用户点击按钮时,它会显示他们的用户 ID。该设置只是 javascript & HTML 在 ASPX 文件中(这样它就可以实际读取用户的 ID 等)。当我在 .NET 部分执行 'response.write' 时,它会在屏幕上毫无问题地显示用户 ID。但是,我的问题是 javascript 看不到 'userid',所以当我在 javascript 中执行“alert(userid)”时,它实际上并没有显示 ID,它只是空白的。

这是我的代码:

<%@ Import Namespace="dbfunctions" %>
<%@ Import Namespace="generalfunctions" %>
<%@ Import Namespace="system.data" %>
<script language="VB" runat="server">

    Sub Page_Load(Sender As Object, e As EventArgs)
        Public userid As Integer
        Dim rst As DataView
        Dim connstr As String = getStrConn(HttpContext.Current)
        userid = Session("u_id")
        connstr = getStrConn(HttpContext.Current)
        'response.write(userid)
    End Sub
</script>

<script type='text/javascript'>

    function loadPage(){
        var userid=<%=userid%>;
        alert(userid)
    }

</script>
<html>

<head>
    <title>Please update your details</title>
    <link rel="stylesheet" type="text/css" href="main.css">
</head>

<body>
    <input type="hidden" id="userid" value="@userid" />
    <img id="img" src="corkboard.png" />
    <a id="b1" href="#" onclick="loadPage()">
        <img src="button.png" style="border-style: none" />
    </a>
</body>
</html>

非常感谢任何帮助,因为我想我快到了,aspx 和 javascript 单独工作,只是将它们组合在一起的问题...

这样不行。原因:ASP在服务器端执行,Javascript在客户端执行。这意味着一旦执行 Javascrpt,您的 "userid" 变量将不再存在。您可以 "store" 它可以在 HTML 渲染后继续存在的某个地方,例如作为隐藏输入元素中的值:

<input type="hidden" id="userid" value="@userid" />

然后在您的 Javascript 代码中读取该元素的值:

function loadPage(){    
  var userid=document.getElementById("userid");
alert(userid);
}

您可以告诉您的预处理器在呈现页面时将代码中的变量粘贴到 aspx 页面中。变量必须是 public,并放置在您的页面部分 class:

<script language="VB" runat="server">
    Public userid As Integer
    Sub Page_Load(Sender As Object, e As EventArgs)
        userid = 32
    End Sub
</script>

然后使用预处理器指令将其粘贴到 aspx 页面中:

var userid=<%=userid%>;  //this line will be rendered as "var userid=32"
function loadPage(){    
    alert(userid)
}