科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[冷枫].NET三层经典架构PetShop3.0分析之表现层

[冷枫].NET三层经典架构PetShop3.0分析之表现层

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

.NET三层经典架构PetShop3.0分析之表现层

作者:冷枫 来源:CSDN 2007年9月22日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

.petshop的页面布局

       petshop的布局比较简单,是通过组合用户控件实现的。对于Default.aspx页的顶部使用navbarnomenu控件,中间通过表table布局,页脚使用Banner控件。对于Category.aspx页顶部使用navbar控件,主体使用SimplePager自定义服务器控件。对于Search.asp和其他页面与Category.aspx几乎一样。

.petshop的页面导航

       在主页面上可以导航到各个类别,导航到各个类别或者某类中的具体动物时,还可以通过navbar,随时导航到各个类别。

       所有存在搜索的页面都是通过navbar.ascx用户控件中的<form id="search" method="get" action="Search.aspx">导航的。

       主页面default.aspx通过 href="Category.aspx?categoryId=BIRDS"连接将用户导航到具体的物种列表。

       navbar.ascx中,通过<a href="SignOut.aspx" >,<a href="EditAccount.aspx">,<a href="ShoppingCart.aspx">,<a href="SignIn.aspx">分别导航到登出,编辑个人帐户信息,购物

车,和登录页面。

       Category.aspx<form id="form" method="post" runat="server">,请求到该页面时SimplePager自定义控件会调用Category.aspx.csprotected void PageChanged(object sender, DataGridPageChangedEventArgs e)方法,通过Request["categoryId"]获取该类动物的列表。并构造单独动物的链接--<A href='Items.aspx?productId=<%# DataBinder.Eval(Container.DataItem, "Id") %>'>,通过动物id,获取动物的详细信息。  

       对于SignIn.aspx,如果用户没有账号,可以通过<a href="CreateAccount.aspx">导航到<a href="CreateAccount.aspx">。用户点击登录按钮会触发SignIn.aspx.csSubmitClicked()事件处理器方法,该方法通过ProcessFlow.AccountController 处理登录请求,如果登录成功导航到合适的页面,HttpContext.Current.Response.Redirect(URL_ACCOUNTSIGNIN, true)--主页面或HttpContext.Current.Response.Redirect(FormsAuthentication.GetRedirectUrl(userId, false), true)--其他页面。

       其他页面的原理差不多,也就是一部分导航是直接通过<a>标签写在页面中,另一部分是通过ProcessFlow中的导航逻辑类进行按照逻辑和操作状态导航(利用HttpContext.Current.Response.Redirect)。

.petshop的应用和会话状态

       petshop使用基于Form的认证模式:

              <authentication mode="Forms">

                     <forms name="PetShopAuth" loginUrl="SignIn.aspx" protection="None" timeout="60"/>

              </authentication>

       其他的location定义了拒绝匿名访问的页面,点击这些页面时,用户如果没有登录系统会首先转到登录页面。

       用户信息和用户的购物信息基本上是通过ProcessFlow中的AccountController.csCartController.cs实现的。

       用户登录时会调用AccountController.cspublic bool ProcessLogin(string userId, string password)方法,登录成功后会通过HttpContext.Current.Session[ACCOUNT_KEY] = myAccountInfosession中储存用户帐号信息。创建新帐号成功后同样会在session中储存用户帐号信息。同理,更新帐户信息会更新session,退出会清除session

       对于购物信息,也是存在于session中。存储购物车后会将购物车信息储存在session中。存储信用卡时会在session中保存信用卡信息,等等,不一一介绍了。 


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1374529

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章