代码改变世界

asp.net通过基类实现统一脚本和样式的管理

2013-02-19 14:20  埋头前进的码农  阅读(434)  评论(0编辑  收藏  举报

之前写PHP代码时经常把javascript脚本的引用和css样式的引用放到一个php文件中,然后通过include方式包含进来。现在使用asp.net开发程序。发现asp.net并没有include方法。想到C#是面向对象编程,通过基类使派生类继承应该能够实现统一管理javascript和css。

实现的基类如下:

/// <summary>
/// 页面基类
/// </summary>
public class BasePage : Page
{
        #region 构造函数
        public BasePage()
        {
            
        }
        #endregion
}

输出脚本和样式的类如下:

public void WriteCommonScriptAndStyle()
{
    Literal lit = new Literal();
    StringBuilder script = new StringBuilder();
    script.Append("<script type=\"text/javascript\" src=\"{0}/js/jquery.min.js\"></script>\r\n");
    lit.Text = script.ToString();
    Header.Controls.Add(lit);
}

这样就可以实现脚本和样式的统一添加了。另外,通过基类继承也可以实现权限认证,这个功能比较适用于网站需要登录的用户。

我的做法是这样的:

#region 页面初始化事件
/// <summary>
/// 页面初始化事件。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected virtual void Page_Init(object sender, EventArgs e)
{
    Response.Buffer = true;
    Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
    Response.Expires = 0;
    Response.CacheControl = "no-cache";
    ////用户未登录。
    if (CurrentUser == null)
    {
        string backUrl = Request.Url.AbsoluteUri.Replace("&", "$apm;");
        Response.Redirect(string.Format("~/userLogin.aspx?BackUrl={0}", backUrl), true);
    }
    else
    {
        officeModel = CurrentUser ?? new UserModel();
    }
    //这里用来输出公共样式和脚本的包含
    WriteCommonScriptAndStyle();
}
#endregion