无法将变量从 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%>(带和不带=符号)。什么都没用。帮助!
将字段更改为属性:
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>