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


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

文章插图
 
关于应用模块页面的生成
应用模块页面函数
如:
public partial class userblog : BaseJsonMode{
[ModeMethod("{CanNoLogin:true,CanEnable:true}")]
static public ReturnJson index(HttpContext ctx, Object m_Parame)
{
ReturnJson m_ReturnJson = new ReturnJson();
try
{
Hashtable m_PageHH = new Hashtable();
//获得页面参数
JsonHelper.OBJToHashTable(m_Parame, m_PageHH);
m_ReturnJson.bOK=true;
//获得渲染页面的内容,传递页面数据m_PageHH
m_ReturnJson.m_ReturnOBJ = RenderPageView(ctx, m_JsonModePath, "index", m_PageHH);
}
catch(Exception)
{
m_ReturnJson.bOK=false;
m_ReturnJson.sMsg="渲染页面异常";
}
return m_ReturnJson;
}
通过浏览器访问该页面
http://../userblog/index.aspx?a=a
其中m_PageHH将获得参数
string a=m_PageHH["a"].ToString();
渲染页面函数
static protected string RenderPageView(HttpContext m_ctx, string m_ModePath, string m_TamplateCTL, Object m_Model)
m_ModePath:页面文件所在位置一般为m_JsonModePath
如是渲染PC端页面一般为Viewamazeuizh-CNindex.aspx
如是渲染手机端页面一般为Viewdeviceamazeuizh-CNindex.aspx
我们也可以自己再加自己的路径
如m_ModePath设置为m_JsonModePath+“/xn”;
那么找到的页面路径则为
如是渲染PC端页面一般为Viewamazeuizh-CNxnindex.aspx
如是渲染手机端页面一般为Viewdeviceamazeuizh-CNixnndex.aspx
路径分解
对于PC端:View+UI库名+语言+添加路径+页面文件
对于手机端:View+device+UI库名+语言+添加路径+页面文件
我们采用aspx作为页面模板的原因,因为ASP.NET开发人员对于aspx页面嵌套服务端逻辑代码是比较熟悉的,便于很快上手
对于aspx模板页面派生自
XNWebEngine.JsonBase.MyBasePageView
典型代码如下:
<%@ Page Language="C#" AutoEventWireup="true" Inherits="XNWebEngine.JsonBase.MyBasePageView" %>
<%@ Assembly Name="CoreSYS" %>
<%@ Import Namespace="XNWebEngine.JsonBase" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="CoreSYS" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="XNWebEngine" %>
<script language="C# " runat="server">
public Object getModel()
{
return this.Model;
}
</script>
其中getModel()获得RenderPageView传过来的页面数据
如:
<%
Hashtable m_PageHH=(Hashtable)getModel();
string a="";
try
{
if(m_PageHH.ContainsKey("a"))
{
a=m_PageHH["a"].ToString();
}
}
catch
{
}
%>
后续的代码和正常的aspx页面写法一致
MyBasePageView的类函数可在页面使用的可见之前的章节
MyBasePageView常用函数和参数
获得文件上传参数
static public OneUpFileWEB GetUpFileURL(HttpContext ctx)
读取cookie
static protected string ReadCookie(HttpContext ctx, string name)
static protected HttpCookie GetCookie(HttpContext ctx, string sKey)
获得当前登录信息
protected SessionLink GetSessionLink()
判断当前用户权限
public bool HavePower(string ClassFullName, string FunctionName, bool bClient, out string sError)
判断指定角色权限
public bool HavePower(string sys_js_uuid, string username, string ClassFullName, string FunctionName, bool bClient, out string sError)
调用指定应用模块函数
public bool CallModeFunction(string classfullname, string functionname, object m_InParame, out object m_OutParame, out string sError)
执行指定模块的函数返回html
public string RenderModeHTML(string classfullname, string functionname, object m_InParame)
保存cookie
protected bool SaveCookie(string name, string value)
读取cookie
protected string ReadCookie( string name)
#region 读写Cache
protected bool SaveCache<T>(string sKey, T m_T,bool bSlidTime=true)
 
protected bool ReadCache<T>(string sKey, out T m_T, int nDelayMinute = -1)
 
protected bool SaveCache<T>(string sKey, T m_T, TimeSpan m_nOverTime, bool bSlidTime=true)
 
protected bool ClearCache(string sKey)
 
#endregion
#region 清除cookie
protected void ClearCookie(string sKey)
#endregion
其他
protected bool SaveCookie( string name, string value, TimeSpan m_T)


推荐阅读