2014-11-05 26 views
0

我的公司目前每月舉辦數場網絡研討會,我們通過將他們發送到網站上的默認頁面引導人們參加網絡研討會,然後轉發到爲當天網絡研討會設置的頁面。這意味着手動創建頁面,然後在默認頁面上更改重定向。我想創建一個應用程序,允許我們CS部門的人員從即將到來的網絡研討會中選擇一個。來自數據庫的信息被寫入收集網絡研討會信息的另一個頁面(密碼,URL和頁面名稱,以及供與會者下載的上傳材料)。提交時,我想創建重定向到的頁面(即webinar_11514.aspx)。我可以在提交表單時創建一個新的aspx文件嗎?

如何在提交表單並將所有信息從表單創建爲該頁面時創建一個全新的文件?

+5

你確定這是一個很好的設計嗎?看起來像是一場災難。爲什麼不只有一個通用的webinar.aspx頁面,根據通過查詢字符串傳遞的選定網絡研討會顯示不同?例如:'〜/ webinar.aspx?id = 11514'?您也可以調查[FriendlyURL的](http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx)或使用MVC。 – mason 2014-11-05 18:25:17

+0

您是否真的需要努力創建一個設計用於顯示動態內容的頁面?您的場景聽起來像是數據驅動的Web應用程序或內容管理系統的案例。 – Filburt 2014-11-05 18:26:06

+0

這是很好的展示你已經嘗試過什麼,你的思維過程是什麼 – MZaragoza 2014-11-05 18:33:12

回答

0

從你所描述的,一個CMS即將到來,但你仍然處於決策階段。現在你需要一些東西,直到C​​MS到位。

我會使用幾個主頁並將用戶鎖定到模板頁面。這種情況發生在CMS已經到位時,你可以現在就爲它做好準備。你可以在數據庫中使用類似XML的東西來設置這種類型的頁面並使其可定製。內容是可變的,但是表單和按鈕功能等內容應該可以在所有頁面中保持一致。 (你需要弄清楚什麼是常量vs變量)

如果你處於一個很多東西看起來不一樣的環境中,你將不得不鎖定它。一旦CMS進入,您的模板成爲選項。期。

0

通常情況下,你的數據(除非頁面的CMS,它可以和它發生之外創建)是從UI應用邏輯分開。

ASPX頁面是你的UI。它控制你如何查看你的數據。 ASPX文件本身應該而不是響應數據被改變。它們應該是靜態的。

對於每個網絡研討會(在運行時)創建頁面webinar_11514.aspx,您應該簡單地創建一個頁面(在設計時)。您可以通過傳遞查詢字符串參數來告訴它顯示哪個網絡研討會,例如:webinar.aspx?id=11414。您的Page_Load函數將檢索該信息並決定如何處理它。

protected void Page_Load(object sender, EventArgs e) 
{ 
    //check to see if an ID was provided 
    if(String.IsNullOrEmpty(Request.QueryString["id"]))   
    { 
    //redirect the user to a page where they can select the webinar, or to an error page, or the home page 
    } 
    string id = Request.QueryString["id"]; //This will get the 11514 id from the URL. 
    var webinar = Webinar.LoadById(id); //load the details of the webinar from a database. It doesn't have to be a relational database, it could be XML or JSON files stored in your ~/App_Data folder. You'll probably want to verify that the webinar for the given ID exists before actually pulling it 
    if(!webinar.IsCurrent) 
    { 
    //tell the user the specified webinar is closed, perhaps redirect to an error page 
    } 

    //Begin loading UI elements with the details of the webinar 
    WebinarTitleLbl.Text = webinar.Title; 
    WebExHyperLink.NavigateUrl = webinar.WebExUrl; 
} 

如果使用FriendlyURL's包,則可以使URL更清晰。您可以使用webinar/11514而不是使用webinar.aspx?id=11514。您不必使用查詢字符串,而是使用通過友好URL提供的Segments屬性。告訴某人去mysite.com/webinar/11514要比mysite.com/webinar.aspx?id=11514容易得多。這對搜索引擎也更好。

相關問題