ASP.NET 标记如何访问代码隐藏中的变量

本文关键字:代码 隐藏 变量 访问 NET 何访问 ASP | 更新日期: 2023-09-27 18:30:39

我有一个带按钮的网络表单:

<asp:Button ID="btn1" runat="server" text="Click me"
            OnClientClick="printVideos(new Object(),new EventArgs(),url,linkName)"/>

OnClientClick事件是

<script language= "c#" type="text/C#" runat= "server">
    private void printVideos(Object sender, EventArgs e, string url, string linkName) {
        for (int i = 0; i < 4; i++) {
            Response.Write("<a href='"+url+"'target_blank>'"+linkName+"</a>");
        }
    }
</script>

其中urllinkName在 C# 代码隐藏中定义为类中的专用string

该按钮不起作用,并且有警告显示未使用urllinkName。我应该怎么做才能让标记访问代码隐藏变量?

ASP.NET 标记如何访问代码隐藏中的变量

您的第一个问题是您正在尝试在客户端上运行服务器端代码 - 将OnClientClick更改为OnClick

接下来,您需要设置 linkNameurl属性的保护级别,以便 ASPX 标记可以访问它们。您可以将其设置为 publicprotected(源)。最后,从 printVideos 方法中删除额外的参数 - OnClick处理程序需要特定的方法签名。因此,按钮标记应如下所示:

<asp:Button ID="btn1" runat="server" text="Click me" OnClick="printVideos"/>

还有你的剧本...

<script language= "c#" type="text/C#" runat= "server">
    private void printVideos(Object sender, EventArgs e) {
        for (int i = 0; i < 4; i++) {
            Response.Write("<a href='"+url+"'target_blank>'"+linkName+"</a>");
        }
    }
</script>

在页面的代码隐藏中,声明变量:

protected string url = "...";
protected string linkName = "...";