2014-11-20 16 views
-5

使用Google搜索并尝试了我找到的所有响应,但无法找到正确的答案。后面无法将C#中的变量传递给aspx

试图简单地传递从代码隐藏(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> 

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

+1

你在哪里打电话/使用你的javascript方法'GetGreeting'? – Habib 2014-11-20 21:01:26

+0

这段代码有什么问题?怎么了? – Servy 2014-11-20 21:02:02

+1

您需要在客户端添加引号:'greeting2 =“<%= greetings%>”;' – dave 2014-11-20 21:02:40

回答

0

在_Default.aspx.cs的的Page_Load(代码后面):

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

然后在_Default.aspx页

<script> 
    var greeting2; 
    function GetGreeting(greetings) 
    { 
     greeting2 = greetings; 
    } 
</script> 
-1
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> 

+1

这不是一个有意义的改变;使用该字段而不是方法没有任何问题。 – Servy 2014-11-20 21:54:32

1

改变字段前往酒店:

public string greetings { get; set; } 

您现在应该能够访问你的aspx页面上,因为的ASPX页面基本上继承的代码隐藏类。

+0

使用字段来做到这一点没有任何问题。没有必要使用一个属性。 – Servy 2014-11-20 21:53:57

+0

如果是这样的话,他将永远不必写这个问题,因为他的代码应该工作得很好。根据我的经验,我不得不将字段变成页面的属性,以正确“查看”它们。 – 2014-11-20 21:56:56

+0

我现在正盯着我创建的字段,正在使用相同的语法从标记访问,并且正在页面上显示该字段的值。使用字段有* no *问题,并且在将其更改为属性时没有任何价值。无论问题是什么,都不是这样。这不是数据绑定问题。数据绑定是需要属性而不是字段。 – Servy 2014-11-20 22:00:39