這裏是所有一旦創建了控制,我把代碼應該是必要的,傳遞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