2014-11-05 67 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容易得多。这对搜索引擎也更好。

相关问题