我有一個'經典'的ASP.NET應用程序(.NET 3.5)與一個漂亮的標準runat="server"
樣式窗體與服務器端控件和'Execute'asp:button
。在代碼隱藏中,executeButton_click
處理程序處理一些其他控件,運行報告並將結果放入asp:label
。因此,按下Execute按鈕的效果是整個頁面會隨着插入到標籤中的報告而重新加載。從代碼隱藏(.aspx.cs)類更改視圖(.aspx)
我需要改變這個,這樣當按下Execute按鈕時,報告將彈出一個新窗口,其佈局不同(即沒有控件和窗體)。如果我在MVC框架中這樣做,我只需更改「執行」操作中的視圖模板,因此ASP.NET的模擬器將更改前面的代碼,即代碼中使用的.aspx文件 - 課後。
這可能嗎?我知道.aspx和.aspx.cs之間的鏈接並不是非常緊密,因爲可以在多個.aspx文件中重用代碼隱藏類。那麼我可以設置.aspx文件從代碼隱藏中渲染嗎?
表單中的控件需要處理並用於生成報告。重定向會失去這些價值嗎? – 2010-11-01 21:54:02
當您執行重定向時,您將失去表單上的任何值。有幾種方法可以解決這個問題,1)在重定向之前將值存儲在數據庫中,然後在新頁面中檢索它們。 2)將asp:按鈕的「PostBackURL」屬性更改爲第二頁。然後在第二頁上,在aspx文件的頂部設置(@Page PreviousPageType)指令,這告訴這個頁面它打算作爲來自page1.aspx的帖子的目標。然後,在第二頁後面的代碼中,可以使用Page.PreviousPage屬性訪問第一頁上的控件。 – eoldre 2010-11-01 22:09:10
謝謝@eoldre。使用PostBackURL,將page1.aspx.cs中的控件設置爲public,並在page2中使用'(page1)this.PreviousPage'完美工作。如果你能更新你的答案,我會接受它;-) – 2010-11-01 23:41:14