簡體   English   中英

從asp.net傳遞JavaScript代碼

[英]Pass javascript code from asp.net

我試圖將一些我在服務器端使用String Builder構建的JavaScript代碼(后面是ASP.NET代碼)傳遞給html頁面上的JavaScript。 這就是我在做什么。

我確實使用母版頁和aspx頁,如下所示:

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<script  type="text/javascript">
// Some initial JavaScript code
// followed by a Literal tag, to be replaced by 
// JavaScript code block which comes from code behind
<asp:Literal runat="server" ID="SomeID"></asp:Literal>

// some more JavaScript.
</script>
</asp:Content>

然后在aspx.cs頁面后面的代碼中:

protected void Page_Load(object sender, EventArgs e)
{
  Literal ID = (Literal)this.Page.FindControl("SomeID");
  ID.Text = SomeStuff();
}
private string SomeStuff()
{
  string javascript = "";
  StringBuilder sb = new StringBuilder();
  sb.Append("Some JavaScript Code");
  sb.Append("dynamically buildup on server side");
}

但是問題是this.Page.FindContol(“ SomeID”)返回NULL。 似乎在腳本標簽內無法讀取文字ID。 我不能使用的div或span標簽文字周圍的控制,這是腳本標記內。 div / span將在JavaScript代碼中留下流浪標記。 任何幫助,將不勝感激。

謝謝!

首先,您是否使用母版頁? 如是? Master.FindControl() 除此之外,您是否有附加特定理由? 建議您使用RegisterStartupScriptBlock()方法或RegisterClientScriptBlock()方法

據我了解,您正在嘗試從后面的代碼中將一些腳本分配給文字控件。

據我所知,您的文字應該在.aspx頁面中。 准備后面代碼中的任何字符串生成器,並在字符串生成器准備就緒后,將代碼中的字符串生成器分配給文字。

this.SomeID.Text = SomeStuff();

您是否嘗試過以下方法:

protected void Page_Load(object sender, EventArgs e)
{  
var literals = Page.Master.FindControl("SomeID").Controls.OfType<Literal>();
// Literal ID = (Literal)this.Page.FindControl("SomeID");
 this.literals.Text = SomeStuff();
}

private string SomeStuff()
{
 string javascript = "";
 StringBuilder sb = new StringBuilder();
 sb.Append("Some JavaScript Code");
 sb.Append("dynamically buildup on server side");
 return sb;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM