ASP.NET原创框架十-应用模块开发之页面生成( 三 )


{
this.ctx = ctx;
if (bFile)
ITemplate = Engine.LoadTemplate(src);
else
{
ITemplate = Engine.CreateTemplate(src);
}
ITemplate.Set("model", m_Model);
m_PageEngine = new PageEngine(ctx, m_ModePath);
ITemplate.Set("engine", m_PageEngine);
ITemplate.SetStaticType("insertClass", m_Type);
}
 
public void Dispose()
{
if(ITemplate!=null)
{
ITemplate=null;
}
if(m_PageEngine!=null)
{
m_PageEngine = null;
}
}
 
public bool Render(out string sText)
{
sText = "";
try
{
sText = ITemplate.Render();
return true;
}
catch (Exception e)
{
sText = e.ToString();
return false;
}
}
}
public class PageEngine : BaseJsonMode
{
HttpContext ctx = null;
string m_ModePath,ModeUrl="";
public PageEngine(HttpContext ctx, string m_ModePath)
{
this.ctx = ctx;
this.m_ModePath = m_ModePath;
string ViewPath = "~\" + m_ModePath + "\View\";
ViewPath = ViewPath.Replace("\", "/");
int nPos = ViewPath.IndexOf("View/");
string MainViewPath = "";
if (nPos != -1)
{
MainViewPath = ViewPath.Substring(1, nPos + 4);
}
ModeUrl = GetResourceUrl() + MainViewPath;
 
}
public SessionLink GetSessionLink()
{
return BaseJsonMode.GetSessionLink(ctx);
//SessionLink m_SessionLink = new SessionLink();
//m_SessionLink.username = "xuneng";
//return m_SessionLink;
}
public bool HavePower(string FullClassName, string FunctionName)
{
return BaseJsonMode.HavePower(ctx, FullClassName, FunctionName, true).bOK;
//return true;
}
public bool SaveCookie(string name, string value)
{
return BaseJsonMode.SaveCookie(ctx, name, value);
//return false;
}
public string ReadCookie(string name)
{
return BaseJsonMode.ReadCookie(ctx, name);
//return "";
}
public void ClearCookie(string name)
{
BaseJsonMode.ClearCookie(ctx, name);
//return;
}
public ReturnJson CallJsonModeFunction(string ClassFullName, string FunctionName, Object m_InParame)
{
ReturnJson m_ReturnJson = new ReturnJson();
//return m_ReturnJson;
 
if (BaseJsonMode.CallJsonModeFunction(ctx, ClassFullName, FunctionName, m_InParame, true, out m_ReturnJson.m_ReturnOBJ, out m_ReturnJson.sMsg))
{
m_ReturnJson.bOK = true;
return m_ReturnJson;
}
else
{
m_ReturnJson.bOK = false;
return m_ReturnJson;
}
 
}
public string RenderModeHTML(string classfullname, string functionname, object m_InParame)
{
//return "";
ReturnJson m_ReturnJson = CallJsonModeFunction(classfullname, functionname, m_InParame);
if (m_ReturnJson.bOK)
{
return m_ReturnJson.m_ReturnOBJ.ToString();
}
else
{
return m_ReturnJson.sMsg;
}
}
public string GetResourceUrl()
{
return BaseJsonMode.GetResourceUrl(ctx);
}
public OneUpFileWEB GetUpFileURL()
{
return BaseJsonMode.GetUpFileURL(ctx);
}
public bool HaveCrossPower(string sClassFullName, string sFunctionName, string sys_companys_nodeuuid)
{
return BaseJsonMode.HaveCrossPower(ctx, sClassFullName, sFunctionName, sys_companys_nodeuuid, true).bOK;
}
protected List<string> GetUrlDotListString()
{
if (ctx.Items.Contains("headDot"))
{
return (List<string>)ctx.Items["headDot"];
}
string[] sDotArray = ctx.Request.FilePath.Split('/');
int nCnt = sDotArray.Length;
List<string> m_List = new List<string>();
if (nCnt >= 3)
{
if (nCnt == 3)
{
ctx.Items["headDot"] = m_List;
return m_List;
}
else
{
//string[] m_ReturnDotArray = new string[nCnt - 3];
for (int i = 1; i < 1 + nCnt - 3; i++)
{
m_List.Add(sDotArray[i]);
}
ctx.Items["headDot"] = m_List;
return m_List;
}
}
else
{
ctx.Items["headDot"] = m_List;
return m_List;
}
}
public string GetUrlHead()
{
List<string> m_HeadList = GetUrlDotListString(ctx);
if (m_HeadList.Count > 0)
{
string str = "";
for (int i = 0; i < m_HeadList.Count; i++)
{
str += "/" + m_HeadList[i];
}
str += "/";
return str;
}
else
{
return "/";


推荐阅读