/// <summary> /// 获得指定表单参数的int类型值 /// </summary> /// <param name="strName">表单参数</param> /// <param name="defValue">缺省值</param> /// <returns>表单参数的int类型值</returns> public static int GetFormInt(string strName, int defValue) { return(ConvertTool.ToInt(HttpContext.Current.Request.Form[strName], defValue)); }
/// <summary> /// 获得模板字符串,从设置中的模板路径来读取模板文件. /// </summary> /// <param name="sitePath">站点目录</param> /// <param name="tempPath">模板目录</param> /// <param name="skinName">模板名</param> /// <param name="templateName">模板文件的文件名称</param> /// <param name="fromPage">源页面名称</param> /// <param name="inherit">该页面继承的类</param> /// <param name="buildPath">生成目录名</param> /// <param name="channelName">频道名称</param> /// <param name="nest">嵌套次数</param> /// <returns>string值,如果失败则为"",成功则为模板内容的string</returns> public static string GetTemplate(string sitePath, string tempPath, string skinName, string templet, string fromPage, string inherit, string buildPath, string channelName, string pageSize, int nest) { StringBuilder strReturn = new StringBuilder(220000); //返回的字符 string templetFullPath = Utils.GetMapPath(string.Format("{0}{1}/{2}/{3}", sitePath, tempPath, skinName, templet)); //取得模板文件物理路径 //超过5次嵌套退出 if (nest < 1) { nest = 1; } else if (nest > 5) { return(""); } //检查模板文件是否存在 if (!File.Exists(templetFullPath)) { return(""); } //开始读写文件 using (StreamReader objReader = new StreamReader(templetFullPath, Encoding.UTF8)) { StringBuilder extNamespace = new StringBuilder(); //命名空间标签转换容器 StringBuilder textOutput = new StringBuilder(70000); textOutput.Append(objReader.ReadToEnd()); objReader.Close(); //替换Csharp标签 foreach (Match m in r[3].Matches(textOutput.ToString())) { textOutput.Replace(m.Groups[0].ToString(), m.Groups[0].ToString().Replace("\r\n", "\r\t\r")); } //替换命名空间标签 foreach (Match m in r[2].Matches(textOutput.ToString())) { extNamespace.Append("\r\n<%@ Import namespace=\"" + m.Groups[1] + "\" %>"); textOutput.Replace(m.Groups[0].ToString(), string.Empty); } //替换特殊标记 textOutput.Replace("\r\n", "\r\r\r"); textOutput.Replace("<%", "\r\r\n<%"); textOutput.Replace("%>", "%>\r\r\n"); textOutput.Replace("<%csharp%>\r\r\n", "<%csharp%>").Replace("\r\r\n<%/csharp%>", "<%/csharp%>"); //开始查找替换标签 string[] strlist = Utils.SplitString(textOutput.ToString(), "\r\r\n"); for (int i = 0; i < strlist.Length; i++) { if (strlist[i] == "") { continue; } strReturn.Append(ConvertTags(nest, channelName, pageSize, sitePath, tempPath, skinName, strlist[i])); //搜索替换标签 } //如果是第一层则写入文件 if (nest == 1) { //定义页面常量 string channelStr = string.Empty; //频道名称 string constStr = string.Empty; //分页大小 if (channelName != string.Empty) { channelStr = "base.channel = \"" + channelName + "\";\r\n\t"; } if (pageSize != string.Empty && ConvertTool.ToInt(pageSize, 0) > 0) { constStr = "\r\n\tconst int pagesize = " + pageSize + ";"; } //页面头部声明 string template = string.Format("<%@ Page Language=\"C#\" AutoEventWireup=\"true\" Inherits=\"{0}\" ValidateRequest=\"false\" %>\r\n" + "<%@ Import namespace=\"System.Collections.Generic\" %>\r\n" + "<%@ Import namespace=\"System.Text\" %>\r\n" + "<%@ Import namespace=\"System.Data\" %>\r\n" + "<%@ Import namespace=\"DTcms.Common\" %>{1}\r\n\r\n" + "<script runat=\"server\">\r\noverride protected void OnInit(EventArgs e)\r\n" + "{{\r\n\r\n\t/* \r\n\t\tThis page was created by DTcms Template Engine at {2}.\r\n\t\t" + "本页面代码由DTcms模板引擎生成于 {2}. \r\n\t*/\r\n\r\n\t{3}base.OnInit(e);\r\n\t" + "StringBuilder templateBuilder = new StringBuilder({4});{5}\r\n{6}\r\n\t" + "Response.Write(PrivateStringRule(templateBuilder.ToString()));\r\n}}\r\n</script>\r\n", inherit, extNamespace.ToString(), DateTime.Now, channelStr, strReturn.Capacity, constStr, Regex.Replace(strReturn.ToString(), @"\r\n\s*templateBuilder\.Append\(""""\);", "")); string pageDir = Utils.GetMapPath(string.Format("{0}aspx/{1}/", sitePath, buildPath)); //生成文件的目录路径 string outputPath = pageDir + fromPage; //生成文件的物理路径 //如果物理路径不存在则创建 if (!Directory.Exists(pageDir)) { Directory.CreateDirectory(pageDir); } //保存写入文件 File.WriteAllText(outputPath, template, Encoding.UTF8); //using (FileStream fs = new FileStream(outputPath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite)) //{ // Byte[] info = Encoding.UTF8.GetBytes(template); // fs.Write(info, 0, info.Length); // fs.Close(); //} } } return(strReturn.ToString()); }
/// <summary> /// 获得指定Url参数的int类型值 /// </summary> /// <param name="strName">Url参数</param> /// <returns>Url参数的int类型值</returns> public static int GetQueryInt(string strName) { return(ConvertTool.ToInt(HttpContext.Current.Request.QueryString[strName], 0)); }