/// <summary>
/// 添加js引用
/// </summary>
/// <param name="helper"></param>
/// <param name="path">相对路径 应用程序根目录 /js/main.js</param>
/// <returns></returns>
public static MvcHtmlString RenderJs(this HtmlHelper helper, params string[] paths)
{
StringBuilder builder = new StringBuilder();
if (paths != null)
{
string wrapper = @"<script src='{0}' type='text/javascript'></script>";
foreach (var item in paths)
{
if (string.IsNullOrEmpty(item))
{
continue;
}
var relativePath = string.Concat(CommonHelp.Catalog, item);
relativePath = string.Concat(relativePath, "?_t=", GetLastAccessTime(relativePath));
builder.Append(string.Format(wrapper, relativePath));
}
}
return new MvcHtmlString(builder.ToString());
}
/// <summary>
/// 添加指定目录下js引用
/// </summary>
/// <param name="helper"></param>
/// <param name="catalog">相对目录</param>
/// <param name="files">完整文件名 main.js</param>
/// <returns></returns>
public static MvcHtmlString RenderCatalogJs(this HtmlHelper helper, string catalog, params string[] files)
{
if (files != null)
{
var paths = files.Select(e => string.Concat(catalog, "/", e)).ToArray();
return RenderJs(helper, paths);
}
return new MvcHtmlString(string.Empty);
}
/// <summary>
/// 添加css引用
/// </summary>
/// <param name="helper"></param>
/// <param name="path">相对路径 应用程序根目录 /css/main.css</param>
/// <returns></returns>
public static MvcHtmlString RenderCss(this HtmlHelper helper, params string[] path)
{
StringBuilder builder = new StringBuilder();
if (path != null)
{
string wrapper = @"<link href='{0}' rel='stylesheet' type='text/css' />";
foreach (var item in path)
{
if (string.IsNullOrEmpty(item))
{
continue;
}
var relativePath = string.Concat(CommonHelp.Catalog, item);
relativePath = string.Concat(relativePath, "?_t=", GetLastAccessTime(relativePath));
builder.Append(string.Format(wrapper, relativePath));
}
}
return new MvcHtmlString(builder.ToString());
}
/// <summary>
/// 添加指定目录下css引用
/// </summary>
/// <param name="helper"></param>
/// <param name="catalog">相对目录</param>
/// <param name="files">完整文件名 main.css</param>
/// <returns></returns>
public static MvcHtmlString RenderCatalogCss(this HtmlHelper helper, string catalog, params string[] files)
{
if (files != null)
{
var paths = files.Select(e => string.Concat(catalog, "/", e)).ToArray();
return RenderCss(helper, paths);
}
return new MvcHtmlString(string.Empty);
}
/// <summary>
/// 获取文件最新写时间
/// </summary>
/// <param name="path">相对路径</param>
/// <returns>最新写时间</returns>
private static string GetLastAccessTime(string path)
{
string result = string.Empty;
string abPath = HttpContext.Current.Server.MapPath(path);
if (File.Exists(abPath))
{
result = File.GetLastWriteTime(abPath).ToString("yyyyMMddHHmmssfff");
}
return result;
}