现在的位置: 首页 > 综合 > 正文

一种新的页面导航方法

2012年07月25日 ⁄ 综合 ⁄ 共 966字 ⁄ 字号 评论关闭
目前在维护一个Web应用,感觉做页面间的导航确实麻烦,特别是页面间参数的传递,如果写的不好,看起来很是头疼。
         正好有个机会,经理让把有些页面做成模式页面,打开模式页面仅仅能传递一个参数,当然这个参数可以是对象。但是如果为了传递参数就去构造很多类,又感觉太麻烦。
        灵机一动,想了如下方法,目前运行良好,和大家分享。有不合适的地方,请批评指正。
        此方法是为要打开的页面类添加个静态方法,例如有MsgInfo.aspx页面:
          public static void Open(ParaType1 para1, (ParaType2 para2, string msgInfoUrl, Page thePage)
          {
                   // 为页面静态变量复制
                   // 打开页面
          }
        其中前两个是传递的页面参数(当然多个也行了),第三个是要打开MsgInfo.aspx页面的页面相对于MsgInfo.aspx的相对url。如果在同一目录下,直接写MsgInfo.aspx就行了,第四个参数为要打开MsgInfo.aspx页面的页面Page对象。
优点:
         使用方便,直接使用MsgInfo.Open(..)方法就行了。
         可以传递任意多个参数,很适合打开模式页面。
         传递的参数是强类型的,避免很多不必要的麻烦。
缺点:
         使用了较多的静态变量,为了去除其负面影响,我一般在Page_Load()方法中加了 this.Response.Expires = 0;
注意:
        有的时候我还想通过以前的方法实现页面导航,这是还想传递页面参数,我是通过以下方式处理的:
 为每个参数写一个Get方法,在此方法中优先处理页面参数,如果没有页面参数,再处理Open方法传递的静态变量。
 private string GetPara()
 {
          if(this.Page.Request.QueryString["Para"] == null)
          {
                   // 返回静态变量
          }
          // 返回查询参数
 }

抱歉!评论已关闭.