【发布时间】:2014-01-03 00:28:25
【问题描述】:
我正在尝试将我在服务器端使用 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。在 script 标签内时,Literal ID 看起来是不可访问的。我不能在 script 标签内的文字控件周围使用 div 或 span 标签。 div/span 将在 JavaScript 代码中留下杂散标记。任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
SomeID.Text = "some javascript"; -
你试过我的答案了吗?
-
@Matthew 您的建议也有效。谢谢!
标签: c# javascript asp.net