![](/img/trans.png)
[英]ASP.NET - How to load page via server-side code (C#) with MVC Pattern in place?
[英]How to add server-side processed data from code-behind to javascript in .aspx page in asp.net using c#
我正在 asp.net 中制作一個 web 應用程序。 我需要翻頁效果,所以我使用了 turn.js(參考: http ://www.turnjs.com/)。 現在我需要在服務器端處理一些數據,即代碼隱藏並將其發送到客戶端。 我從上面的網站下載了該項目(來自: https : //github.com/blasten/turn.js )。 但問題是我不知道如何將數據從代碼隱藏發送到實際加載動態頁面的 .aspx 頁面中的 JavaScript。
function addPage(page, book) {
// First check if the page is already in the book
if (!book.turn('hasPage', page)) {
// Create an element for this page
var element = $('<div />', {'class': 'page '+((page%2==0) ? 'odd' : 'even'), 'id': 'page-'+page}).html('<i class="loader"></i>');
// If not then add the page
book.turn('addPage', element, page);
// Let's assum that the data is comming from the server and the request takes 1s.
setTimeout(function(){
element.html('<div class="data">Data for page '+page+'</div>');
}, 1000);
}
}
這是添加動態頁面的 JavaScript 函數。 如何在行element.html('<div class="data">Data for page '+page+'</div>');
.
在你的 aspx 頁面 element.html('<%=pageData%>')
在后面的代碼中創建一個名為 pageData 的公共字符串,然后在您的代碼(parhaps page Load 事件)中將您想要的數據字符串放入 pageData
或者您可以創建一個 Web 服務或一個簡單的 ashx 文件,以響應所需的數據並使用 ajax 獲取下一頁數據。
有幾種方法可以滿足您的要求。
將 asp:Literal 控件添加到您的 javascript 函數中。 在后面的代碼中設置其內容。
setTimeout(function(){ element.html('<div class="data">Data for page '+<asp:Literal runat="server" Id="litPageData"></asp:Literal>+'</div>'); }, 1000);
添加一個隱藏字段,在后面的代碼中設置它,並在您的 Javascript 中訪問該值。
<asp:Hidden runat="server" id="hidPageData"></asp:Hidden>
(我可能對這個語法有點偏離)
setTimeout(function(){ element.html('<div class="data">Data for page '+$('#<%= hidPageData.ClientId%>').val() +'</div>'); }, 1000);
Symeon 的解決方案,已經發布。
在你的代碼隱藏中,例如 code.cs 聲明一個變量:
String strDummyValues = "Dummy value";
在您的 ASPX 頁面中:
使用<%=strDummyValues%>
表示
element.html('<div class="data">Data for page '+<%=strDummyValues%>+'</div>');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.