簡體   English   中英

ASP.NET C#正確地為頁面生成HTML

[英]ASP.NET C# Properly Generating HTML for Page

我意識到這可能是我應該知道的基本知識,但是我正在自學C#和asp.net,因此我有點迷失了。

我現在有2頁。 一個是.aspx(包括aspx.cs文件),該文件為空白,並且從cs文件中的Page_Load函數為其生成html。 HTML非常簡單,它只是一個圖像和一些文本。

第二個文件是一個shtml文件,其中包含許多內容,服務器端包括可編輯區域和不可編輯區域。 我想將我的Web應用程序放入此文件。 我的asp.net應用程序使用Response.Write只是寫出html。 此頁面無法很好地進行,因為所有操作都將其寫在頁面頂部,這是因為它首先運行並在頂部生成。

我如何才能在頁面內部生成HTML代碼的位置(例如在特定的DIV中),從而不會弄亂頁面。 學習如何做的出發點在哪里。

我應該注意,我不需要用戶進行任何交互。 所有這些都會立即產生。

我認為您需要閱讀一些基本的ASP.Net文檔和教程。 Response.Write不是正確的方法-您需要了解ASP.Net頁面生命周期的工作方式以及如何使用WebControls呈現html。

ASP.Net試圖在大多數情況下消除必須手動創建html的麻煩。

您可以在div內的頁面中添加Literal控件

<div>
   <asp:Literal ID="litMarkup" runat=server />
</div>

然后在您的代碼背后:

litMarkup.Text = "<strong>Your markup</strong>";

因此,如果我正確理解了這些問題。 您已經有一個現有的頁面/應用程序(shtml文件),您希望通過將ASP.NET頁面的輸出包含在現有頁面中來擴展某些新的ASP.NET組件?

這不是ASP.NET“支持”的開箱即用的東西,並且您“不會”使用SSI執行aspx頁面。 但是您可以相反,ASP.NET頁面確實支持SSI 因此,如果您未在shtml文件中使用任何其他腳本,則這可能是一個解決方案。

否則,唯一的常見解決方案是使用AJAX框架並從現有頁面中調用ASP.NET或使用iframe解決方案。 在這兩種情況下,都可以使用客戶端來調用ASP.NET頁並合並結果。

然后您在控制ASP.NET頁的輸出時遇到問題嗎?

多態播客在ASP.NET WebForms中有一篇關於控制HTML的好文章。

我不知道這對您有多好,但是您可以嘗試使用iframe來容納ASP.NET頁嗎? 這應該將其保留在指定區域中,並且不會覆蓋您的shtml文件。 這可能是需要考慮的事情。

如果有必要從C#代碼生成HTML輸出,並且要在多個地方使用它,我想您可能會想到諸如ASP.NET自定義控件之類的東西(不要與“ User控件”-盡管您可能也可以使用另一個人建議的文字控件將這些解決方案組合在一起)。 MSDN文檔將是一個很好的起點。 但是,總的來說,從代碼中編寫HTML自己編寫模型(就像您使用CGI應用程序一樣),並不是通常的ASP.NET開發模型,因為它大大挫敗了使用ASP的目的。 NET。 如果您正在編寫自己的Web控件,則通常會想做這種事情,盡管這可能正是您正在做的事情(很難從描述中看出來)。

暫無
暫無

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

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