文章插图
关于应用模块页面的生成
应用模块页面函数
如:
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)
推荐阅读
- HTTP 框架 Hertz 实践入门:性能测试指南
- 原创|喜迎世界杯,众星分享手指舞,鹿晗拿到解说世界杯的资格
- 祝福生日的短信原创
- 高压电线下打手机可能被电击吗?
- 原创 安徽有一座历史文化名山 安徽被称为天下第一名山
- 对于 Display 框架,我需要了解 KMS api 吗?| Linux 驱动
- 装了.Net 7.0后,工程框架用 net6 的 dotnet watch 出错临时解决方案
- python爬虫之Scrapy框架,基本介绍使用以及用框架下载图片案例
- ASP.NET中如何通过QueryString进行页面传值
- 原创唯美现代诗歌! 自创最唯美的现代诗歌!