111 lines
3.7 KiB
C#
Raw Permalink Normal View History

2025-08-13 11:14:39 +08:00
using Learun.Cache.Base;
using Learun.Cache.Factory;
using Learun.Util;
using System.Text;
using System.Web;
using System.Web.Mvc;
namespace Learun.Application.Web
{
/// <summary>
/// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
/// Copyright (c) 2013-2018 Hexagon PPM
/// 创建人:研发部
/// 日 期2017.03.07
/// 描 述对HtmlHelper类进行扩展
/// </summary>
public static class HtmlHelperExtensions
{
private static ICache cache = CacheFactory.CaChe();
/// <summary>
/// 往页面中写入js文件
/// </summary>
/// <param name="htmlHelper">需要扩展对象</param>
/// <param name="jsFiles">文件路径</param>
/// <returns></returns>
public static MvcHtmlString AppendJsFile(this HtmlHelper htmlHelper, params string[] jsFiles)
{
string jsFile = "";
foreach (string file in jsFiles)
{
if (jsFile != "")
{
jsFile += ",";
}
jsFile += file;
}
string jsStr = "";
if (Config.GetValue("JsCompressorCache") == "true")
{
jsStr = cache.Read<string>(jsFile, CacheId.jscss);
}
if (string.IsNullOrEmpty(jsStr))
{
jsStr = JsCssHelper.ReadJSFile(jsFiles);
cache.Write<string>(jsFile, jsStr, CacheId.jscss);
}
StringBuilder content = new StringBuilder();
string jsFormat = "<script>{0}</script>";
content.AppendFormat(jsFormat, jsStr);
return new MvcHtmlString(content.ToString());
}
/// <summary>
/// 往页面中写入css样式
/// </summary>
/// <param name="htmlHelper">需要扩展对象</param>
/// <param name="cssFiles">文件路径</param>
/// <returns></returns>
public static MvcHtmlString AppendCssFile(this HtmlHelper htmlHelper, params string[] cssFiles)
{
string cssFile = "";
foreach (string file in cssFiles)
{
if (cssFile != "")
{
cssFile += ",";
}
cssFile += file;
}
string cssStr = "";
if (Config.GetValue("JsCompressorCache") == "true")
{
cssStr = cache.Read<string>(cssFile, CacheId.jscss);
}
if (string.IsNullOrEmpty(cssStr))
{
var url = HttpContext.Current.Request.ApplicationPath;
cssStr = JsCssHelper.ReadCssFile(cssFiles);
if (url != "/")
{
cssStr = cssStr.Replace("url(", "url(" + url);
}
cache.Write<string>(cssFile, cssStr, CacheId.jscss);
}
StringBuilder content = new StringBuilder();
string cssFormat = "<style>{0}</style>";
content.AppendFormat(cssFormat, cssStr);
return new MvcHtmlString(content.ToString());
}
#region
/// <summary>
/// 设置当前页面地址
/// </summary>
/// <param name="htmlHelper"></param>
/// <returns></returns>
public static MvcHtmlString SetCurrentUrl(this HtmlHelper htmlHelper)
{
string currentUrl = (string)WebHelper.GetHttpItems("currentUrl");
return new MvcHtmlString("<script>var lrCurrentUrl='" + currentUrl + "';var lrModuleButtonList;var lrModuleColumnList;var lrModule;var lrForm</script>");
}
#endregion
}
}