无法将变量从 C# 传递到 aspx

本文关键字:aspx 变量 | 更新日期: 2023-09-27 18:31:20

谷歌搜索了这个并尝试了我找到的所有答案,但找不到正确的答案。

尝试简单地将代码从代码隐藏 (C#) 传递到 aspx(更具体地说是 javascript 变量)

代码隐藏:

public partial class _Default : System.Web.UI.Page
{
    public string greetings = "hello";
    protected void Page_Load(object sender, EventArgs e)
    {
    }

}

.ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>My page</title>
    <script>
        var greeting2;
        function GetGreeting() 
        {
            greeting2 = <%=greetings%>;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>

我尝试在隐藏的代码中使用 get 方法而不仅仅是公共变量,但这具有相同的效果。我也尝试过<%=this.greetings%>(带和不带=符号)。什么都没用。帮助!

无法将变量从 C# 传递到 aspx

将字段更改为属性:

public string greetings { get; set; }

现在应该能够在 aspx 页上访问它,因为 ASPX 基本上继承自代码隐藏类

在_Default.aspx.cs的Page_Load(代码隐藏):

ScriptManager.RegisterStartupScript(this, this.GetType(), "", "GetGreeting(" + greetings + ");", true);

然后在_Default.aspx页面中

<script>
    var greeting2;
    function GetGreeting(greetings) 
    {
        greeting2 = greetings;
    }
</script>
public partial class WebForm4 : System.Web.UI.Page
{
    public string greetings = "Hellooooo";
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    public string Method()
    {
        return greetings;
    }
}


 <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript">
    var greeting2;
    function GetGreeting() 
    {
         greeting2 = ('<%=Method() %>');
         alert(greeting2);
    }
    window.onload = GetGreeting;
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>