今天看了3篇文章,有点启发,原来我一直就没入asp.net门槛,都不知道整天在干些什么了。
接触asp.net是在10年6月份(刚毕业),当时在公司也是边学边做项目,当时对控件也是挺好奇的,用了一段时间后,受不了一些东西。就没再用,自己琢磨着写了一个页面基类,由基类完成html的展示操作(也就是你们常说的拼接html),现在慢慢受不了这些东西,但又没有在项目中尝试其他的。因为公司让我带的有实习生,跟着我也快一年,熟悉了我写项目的那个方式。
再换又得重新来(开发的就我们5个),老总又不太同意用mvc(主要是需要3.5的支持,也不好说,老总他不知道从那公司给我弄来一套asp.net mvc 2.0的CRM源码让我研究,但是一直不让我运行项目,说运行后,能检测登录IP。)
说实话,我也是半吊子水平,整不出来啥NB东西,但是我真的烦整天对着一屏幕的html字符串。看过那几篇文章之后,我再慢慢尝试用控件开发吧,但不知道能持续多久,会又回到原来的拼接html。o(︶︿︶)o 唉。谁来救救我啊!
在用的过程中,我也问个资深人士,他没多说我这种有多么不好,只是说到后期维护时很麻烦,让我多在数据操作和业务逻辑方面下功夫。我把那个基类源码发出来一些。并且在资源里,我上传一个小项目,就是用这个。 
一个页面基本信息   protected BasePageInfo page = new BasePageInfo();
一个存储页面html的StringBuilder;; protected StringBuilder html = new StringBuilder(); protected override void OnInit(EventArgs e)
{
    //验证是否登陆
    CheckAdminLogin();
}
 public virtual void InitFuncPage()
        {
            html.Append(InitPage());//初始化头部页面(title、js、css ...)
            html.Append(GetTop());                  //获取页面头部html代码
            if (!CheckAdminPermit())
            {
                html.Append(GetErrHtml("您没有该页面操作权限。", String.Empty));
            }
            else
            {
                int subFlag = RequestValue.FormInt("subflag");
                if (subFlag > 0)
                {
                    try
                    {
                        bool isSubmimt = true;
                        switch (subFlag)
                        {
                            case 1:
                                isSubmimt = CheckPermit(page.PageSavePermit1);
                                break;
                            case 2:
                                isSubmimt = CheckPermit(page.PageSavePermit2);
                                break;
                            case 3:
                                isSubmimt = CheckPermit(page.PageSavePermit3);
                                break;
                        }
                        if (isSubmimt) //有页面操作权限
                        {
                            string errinfo = ValidatorInput();
                            if (errinfo.Trim().Length == 0)
                            {
                                //保存操作,返回html操作成功、失败代码
                                html.Append(PageSave());
                            }
                            else
                            {
                                html.Append(GetErrHtml(errinfo, RequestValue.UserCurrentPageURL));
                            }
                        }
                        else
                        {
                            html.Append(GetErrHtml("您没有该页面操作权限。", String.Empty));
                        }
                    }
                    catch (Exception ex)
                    {
                        html.Append(GetErrHtml(ex.Message, RequestValue.UserCurrentPageURL));
                    }
                }
                else  //执行浏览操作
                {
                    try
                    {
                        html.Append(GetMainHtml());     //获取页面中间html代码
                        html.Append(GetBottom());
                    }
                    catch (Exception ex)
                    {
                        html.Append(GetErrHtml(ex.Message, String.Empty));
                    }
                }
            }
            //获取页面html尾部代码
            foreach (Control thisCtrl in this.Controls)
            {
                //将html填充前台页面
                if (thisCtrl.ClientID == "ctl00")
                {
                    //(thisCtrl as System.Web.UI.LiteralControl).Text = StringHelper.Compress(html.ToString());
                    (thisCtrl as System.Web.UI.LiteralControl).Text = html.ToString();
                    break;
                }
            }
        }
  #region 派生类继承函数        /// <summary>
        /// 保存操作(派生类实现方法体)
        /// </summary>
        /// <returns></returns>
        protected virtual StringBuilder PageSave()
        {
            return new StringBuilder();
        }        /// <summary>
        /// 获取页面中间内容部分(派生类实现方法体)
        /// </summary>
        /// <returns></returns>
        protected virtual StringBuilder GetMainHtml()
        {
            return new StringBuilder();
        }        /// <summary>
        /// 页面样式代码(派生类实现方法体)
        /// </summary>
        /// <returns></returns>
        protected virtual string GetPageStyle()
        {
            return "";
        }        /// <summary>
        /// 页面开始JS代码(派生类实现方法体)
        /// </summary>
        /// <returns></returns>
        protected virtual string GetBeginJsString()
        {
            return "";
        }
        /// <summary>
        /// 页面结束JS代码(派生类实现方法体)
        /// </summary>
        /// <returns></returns>
        protected virtual string GetEndJsString()
        {
            return "";
        }        /// <summary>
        /// 页面快捷按钮代码(派生类实现方法体)
        /// </summary>
        /// <returns></returns>
        protected virtual string GetPageTabLink()
        {
            return "";
        }        /// <summary>
        /// 验证客户端输入是否正确,正确返回""空字符串(派生类实现方法体)
        /// </summary>
        /// <returns></returns>
        protected virtual string ValidatorInput()
        {
            return "";
        }        #endregion其他的想看,可以下载源码。 谁来点拨点拨我吧。

解决方案 »

  1.   

    在aspx页面上只需 2行
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RoleList.aspx.cs" Inherits="OSWeb.UI.Admin.sys.RoleList" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    并且集成PageBase,类似这样的public partial class RoleList : PageBase
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                base.page.PageName = "角色管理";
                base.page.PageSubName = "角色列表";
                base.page.PageContent = "角色是为了便于管理权限的权限集合,不同的权限集合(角色)代表不同的操作身份。";
                base.page.PageViewPermit = "sys_role_view";
                base.page.PageSavePermit1 = "sys_role_del";
                base.page.isListPage = true;
                base.InitFuncPage();
            }
      

  2.   

    天!asp.net就是给会用鼠标键盘的业余用户用的傻瓜开发平台,这还有门槛?