Я пытаюсь передать некоторый код JavaScript, который я создаю с помощью String Builder на стороне сервера (код ASP.NET) для JavaScript на странице html. Вот что я делаю.Пропустить javascript-код от asp.net
Я использую главной страницы и страницы 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. Похоже, что Literal ID недоступен, если внутри скрипт теги. Я не могу использовать теги div или span вокруг Literal control, который находится внутри сценарий тегов. div/span оставит блуждающую разметку внутри кода JavaScript. Любая помощь будет оценена по достоинству.
Спасибо!
'SomeID.Text = "некоторый JavaScript";' – Matthew
вы пробовали мой ответ? – mmssaann
@Matthew Ваше предложение также работает. Благодаря! – scouty