2010-10-20 59 views
0

我希望能夠加載一個自定義的日誌頁面取決於傳遞到查詢字符串的幾個參數。ASP.NET 2.0 - 如何包含包含服務器端代碼的文件?

每個定製的登錄頁面必須能夠動態顯示登錄錯誤並可能在通過其他變量 假設動態登錄頁面看起來像這樣(過於簡單化這裏):

<form> 
<% if (has_errors) { Response.Write(error_msg); } %> 
<input type="text" name="email"> 
</form> 

如果aspx頁面像這樣加載文件:

Response.writefile("path/to/custom/page"); 

該代碼在輸出中顯示並且未得到處理。我嘗試了其他方法來加載文件內容(類似於傳統的ASP),但每次都得到相同的結果。

我可以將所有自定義頁面設置爲用戶控件,但我需要對css,js和html進行100%的控制 - 並且我在此處閱讀的文檔表明我不會具有該級別的粒度。 link text

PLUS - 我被困在.NET 2.0的環境 - 所以.NET MVC是不提供給我

任何幫助/建議?

+0

用戶控件工作,我想我希望更多的東西MVC樣就好了,如果你還不能在MVC +1諧音爲約翰·K公司的回答 – Tahbaza 2010-10-20 04:44:28

回答

2

,但我需要在CSS 100%的控制, JS和html

你不會在頁面上獲得100%的,但你將有用戶控件實例內部控制。而且,很多時候,您可以在控制範圍內覆蓋像CSS這樣的技術。最後,因爲所有的控件都被整合到一個大的HTML頁面中,所以您將擁有與使用客戶端技術的單個網頁相同的控制級別。


你可以建立一個Web UserControl表示日誌/中,然後包括控制的一個實例到任何網頁,在任何地方,在多個頁面,如果你的願望。
(請參閱MSDN幫助頁上關於如何創建和使用它的主題)。

其他有用的參考文獻(這些是在同一主題上的各種角度)。

這應該提供一個良好的開端,以繼續尋找,如果這是那種你認爲你需要的信息的。

內幕
用戶控件可以有它自己的邏輯,訪問瀏覽器查詢字符串,請訪問網頁會話,應用等相當多的東西,它需要知道爲自己工作。

面向
此外,由於用戶控件也是一個對象的對象,你可以將自己的public的方法和屬性添加到它,通過它可以互動與頁面(就像你在控制intance溝通與其他Web控件交互,如Button.Text =「點擊」,TextBox.BackColor = System.Drawing.Color.Blue等)。

其他選項 - 動態控制負載

你可能想在運行時使用的Page.LoadControl(..)方法動態考慮加載控件:

讀出控制對象從基於指定的虛擬文件 路徑。

MyControl myControl1 = (MyControl)LoadControl("TempControl_Samples1.cs.ascx"); 
PlaceHolder1.Controls.Add(myControl1); 
+0

做更優雅;但是我在想,被.NET 2所困擾的是在整個岩石中摧毀這個希望。 ascx頁面是否可以放入一個文件夾而不被首先編譯? – JayTee 2010-10-20 12:27:27

+0

我最終走了一條不同的路線;但是你的回答更實用,因此對於未來訪問此問題的人更好 – JayTee 2010-11-16 17:25:03