簡體   English   中英

從數據庫檢索HTML數據以創建頁面

[英]Retrieving html data from database to create a page

我已經將html文件存儲在數據庫中。 現在,我想使用CS文件獲取數據並將其鏈接到我的視圖頁面。 以下是我如何保存能力的示例。

我的數據庫表包含兩列( page_header,page_footer )。

page_header

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>

page_footer

<footer>
<table width="100%">
<tr>
<td>
Written by <a href="mailto:webmaster@example.com">Jon Doe</a>.<br>
Visit us at:<br>
Example.com<br>
Box 564, Disneyland<br>
USA
</td>
<td>
<a href="www.google.com">Visit our Site </a>
</td>
</footer>

我想將這些數據檢索到我的aspx頁面。 任何人都可以幫忙。 或者,如果有可用的演示,將有助於您理解如何進行演示。

如果此職位無關,請不要降級。 請告訴我,我將其刪除。

這是您如何向用戶獲取特定於用戶的信息,而不必手動更新您所服務的每個頁面:

<!DOCTYPE html>
<html>
<head>
<title runat="server">Page Title</title>
</head>
<body runat="server">
    <div id="welcomeDiv" runat="server"></div>
    <div id="dataDiv" runat="server">
         <datagridview id = "customerData" runat="server">
    </div>
</body>
</html>

然后,在您的代碼隱藏文件中:

private void Form1_Load(object sender, EventArgs e)
    {
      //load name from db
      Form1.Title = "Welcome back, Mr. "+customer.LastName;
      welcomeDIV.InnerHtml = "<b>It's been "+customer.daysSinceLastVisit.ToString()+" days since you last visited! How are "+customer.wifeName+" and the boys?</b>";
      customerData = loadDataGrid(customer.ID);
    }

看來您正在創建某種多租戶系統,並且需要為每個租戶進行少量自定義。

沒有理由不將HTML模板存儲在數據庫中-諸如Wordpress之類的CMS可以做到很多。 但是,就@ShannonHolsinger而言,您應確保數據庫架構在合理的范圍內被規范化 考慮將電子郵件地址,聯系人姓名,地址和網站URL存儲為單獨的字段。

對於模板系統,有多種選擇。 您應該進行一些探索,以便選擇最適合自己或您的需求的一種。 但是,在每種情況下,請確保將數據的屬性轉義為HTML,否則您可以允許您的頁面被接管。 如果您只是將字符串粘貼在一起(例如使用InnerHtml則有人可以輸入</div><script>ChangeTheEntirePageToWhatEverILike()</script></div><script>InjectInSomeCodeToSendFormDataToMySite()</script>將被瀏覽器視為您的代碼而不是文本。

一種模板技術可能涉及客戶端數據綁定。 一些流行的庫是Knockout和Angular2。對於客戶端數據綁定,您可以將變量引用放入受信任的頁眉和頁腳HTML中,然后將變量值作為JavaScript數據進行綁定。 換句話說,讓瀏覽器執行所需的任何數據合並,而不是ASP.NET。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM