在前面的文章中实现了框架的简单搭建、身份的验证,但每个页面都要引入vue和element等相关的js、css,这样相当繁琐,那有没有什么方式能够自动实现的呢?有的。这就要用到asp.net的机制。因为aspx的每一个页面都是通过后台请求来推送到前端的,所以可以在收到请求后,作出一定的处理,把需要加载的js、css直接赋进去。为此,我们增加了一个PageBase类,代码如下。
/// <summary>
/// 基本页
/// </summary>
public class PageBase : System.Web.UI.Page
{
#region 内部常量
private static readonly string SCRIPT_INCLUDE_TEMPLATE = "<script src=\"{0}\" type=\"text/javascript\"></script>\r\n";
private static readonly string STYLE_INCLUDE_TEMPLATE = "\r\n<link href=\"{0}\" rel=\"stylesheet\" type=\"text/css\"/>\r\n";
private static readonly string SCRIPT_CONTENT_TEMPLATE = "<script type=\"text/javascript\">{0}</script>\r\n";
#endregion
protected void Page_InitComplete(object sender, EventArgs e)
{
AddMeta();
AddDefaultCss();
AddDefaultJs();
AddCurrentPageJsCss();
}
/// <summary>
/// 添加meta
/// </summary>
private void AddMeta()
{
LiteralControl viewportControl = new LiteralControl();
viewportControl.ID = "viewport";
viewportControl.Text = "\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />";
this.Header.Controls.AddAt(GetNextControlIndex(this), viewportControl);
}
/// <summary>
/// 添加默认的CSS
/// </summary>
private void AddDefaultCss()
{
//加载element-ui.css
AddCss("element-ui.css", "/Content/ElementUI/element-ui.css", "/Content/ElementUI/element-ui.css");