2014-11-20 37 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