# Default.aspx 页面

说明: 点击上面的链接查看创建网页用到的组件，用户控件，存储过程的细节和源代码。

说明与特色： Default.asp页面是Commerce Starter Kit application的主页。它向使用此应用程序的用户致以欢迎信息，并提供此应用程序的一个概要介绍。为了吸引用户深入站点，该页面显示了一个每周“最受欢迎的商品”列表，并且为特色商品配以图片。

使用说明： default页面大部分都是静态的，—大部分工作由其他组件来完成。例如： 标题、菜单、 "popular items"表，它们都由各自的用户控件来完成，但由该页面调用。

Default网页本身只使用几行代码来检验用户是否已经登陆。如果是，页面将显示个性化的友好的欢迎信息。这种个性化的定制在Page_Load event-handling方法中实现。该事件在页面由浏览器访问时激活。它提供了一种便捷的方法用以建构最初访问每个页面时所需的服务器逻辑，这一事件句柄提供了便捷的方式。代码如下：

    Default网页本身只使用几行代码来检验用户是否已经登陆。如果是，页面将显示个性化的友好的欢迎信息。这种个性化的定制在Page_Load event-handling方法中实现。该事件在页面由浏览器访问时激活。它提供了一种便捷的方法用以建构最初访问每个页面时所需的服务器逻辑，这一事件句柄提供了便捷的方式。代码如下：

            void Page_Load(Object sender, EventArgs e) {

                // Customize welcome message if personalization cookie is present
                if (Request.Cookies["ASPNETCommerce_FullName"] != null) {
                    WelcomeMsg.Text = "Welcome " + Request.Cookies["ASPNETCommerce_FullName"].Value;
                }

            }

在这个方法中,欢迎信息通过获得客户端的cookie产生。(在Login.aspx和Register.aspx页的客户端保持)如果cookie找到了，从其抽取用户名并使用服务器端的label控件来显示。查看Login.aspx 页面可以了解到如何产生cookie的细节。

操作说明：

- 因为页面作为Commerce Starter Kit application的起始页面-网页的访问量很大-已经被设计具有了优良的性能。我们不必为输出缓冲整个网页(与ProductDetails和ProductsList不同)的输出，,因为我们想将用户的浏览行为个性化。
- 考虑到性能，我们在设计页面时避免了为每次的请求进行数据库调用，而是，在可选择的客户端cookie里存储个人信息(在本例里是用户名)。
- 相比较而言，Menu与PopularItems用户控件确实使用数据库中调出的信息。但是，这些用户控件平衡了部分页面的缓冲输出，以缓冲数据库结果，并且每小时只更新一次数据。