这里是所有一旦创建了控制,我把代码应该是必要的,传递ASP.NET会话变量与JavaScript
我创建了一个控制功能中,无论是文本框单选按钮,列表等。它在面板上,然后执行以下操作:
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(sw);
panel.RenderControl(hw);
Session["formHTML"] = sb.ToString();
Label1.Text = sb.ToString();
Label1文本出来完美。它正是它应该是什么,这是我从Panel.RenderControl(hw)线获得的面板的html。这是我的问题。点击一个按钮,我有:
Response.Redirect("~/preview.aspx");
,这里是我的preview.aspx网页上的代码:
<script type="text/javascript">
function preview() {
var html = '<%= Session["formHTML"]%>';
alert(html);
$('#previewForm').empty();
$('#previewForm').append(html);
}
</script>
<body onload="preview()">
<form id="form1" runat="server">
<div id="previewForm">
</div>
</form>
</body>
我的问题是被传递给函数的会话变量。它不会在我的功能中发出警报。现在我有另一个会话变量,Session["formID"]
。当我把Session[FormID]
放在我的javascript函数中而不是Session["formHTML"]
时,它可以很好地工作。如果ID是434,则附加到我指示的div标签。现在formHTML具有HTML作为字符串。由于某种原因,它不喜欢这样。我收到以下错误:
Uncaught SyntaxError: Unexpected token ILLEGAL Uncaught
ReferenceError: preview is not defined
我无法弄清楚这一点,我不知道为什么它不起作用。我的JavaScript函数中我曾尝试:
var html = '<%= Session["formHTML"].ToString()%>';
和
var html = "'" + '<%= Session["formHTML"]%>' + "'";
我只尝试了这些,因为我想通JavaScript中的HTML没有被呈现为字符串正确。我清楚地不知道为什么我得到这个错误,这就是为什么我没有任何想法如何解决它。
的意见:
好了,所以当我的函数看起来像这样:var HTML ='<%会话[ “formHTML”]%>它呈现为:
function preview() {
var html = '<div id="panel0" class="panelHeader" class="box ui-draggable" data-ui-widget="draggable">
<span id="mylabel">mylabel</span><span id="lbl0" onclick="deleteControl(panel0)" style="color:Red;">x</span>
</div>';
alert(html);
$('#previewForm').empty();
$('#previewForm').append(html);
}
看起来正确的对我来说,但仍然产生错误
您是否在JavaScript控制台上发现了该错误?如果错误发生在JavaScript中,请显示呈现给页面的实际JavaScript。服务器端代码对此没有帮助。 – David
我不知道你在问我什么。我的意思是该函数与不包含html的会话变量一起工作。当我使用具有html的会话变量我得到未捕获的SyntaxError:意外的令牌非法未捕获的错误。我不知道你还问我要告诉你什么 ReferenceError:预览没有定义 –
那么,对于初学者来说,你会得到那个错误?在服务器端代码或客户端代码?如果它在客户端代码中,那么您需要告诉我们客户端上实际运行的是什么。 'var html =“'”+'<%= Session [“formHTML”]%>'+“'”;'是服务器上的内容,但这不是JavaScript执行的内容。我们需要查看JavaScript代码中呈现给客户端的内容,以确定为什么会出现错误。很明显,这听起来像你正在渲染的东西到页面,是不合法的JavaScript。 – David