跳转至

SmartController

类名:SmartController
说明:SmartController 是表单控制器基类,为表单操作提供核心能力支撑,包括请求上下文管理、表单数据加载 / 查询、序列化 / 反序列化、业务对象数据处理等,同时定义抽象方法供子类实现具体表单业务逻辑,是表单控制器的统一基础框架。

构造函数

功能

初始化表单控制器实例,接收并存储请求上下文,为后续表单操作提供基础环境(如引擎实例、请求参数等)。

接口定义

public SmartController(RequestContext request);  

参数说明

参数名称 是否必填 类型 描述
request RequestContext 表单请求上下文对象,包含引擎实例(IEngine)、请求参数、用户信息等核心数据。

Engine 属性(保护只读)

功能

提供当前请求的引擎实例,子类可通过该属性调用系统服务(如组织结构、业务对象管理、日志记录等)。

接口定义

protected IEngine Engine { get; }  

返回值

类型 描述
IEngine 当前请求上下文关联的引擎实例,包含系统核心服务的访问入口。

OnAction 方法(抽象保护方法)

功能

表单动作的核心执行逻辑,由子类必须重写,实现具体动作(如加载表单、提交表单、查询数据)的业务处理。

接口定义

protected abstract ResponseContext OnAction(string actionName, object postValue, H3.Workflow.Instance.WorkflowInstanceState oldState, H3.Workflow.Instance.WorkflowInstanceState newState);  

参数说明

参数名称 是否必填 类型 描述
actionName string 动作名称(如 Action_Load 表示“加载表单”),用于区分不同表单操作。
postValue object 前端提交的请求数据(如表单字段值、查询参数),需根据动作类型反序列化为对应模型。
oldState H3.Workflow.Instance.WorkflowInstanceState 流程旧状态(如“审批中”),非流程表单可传入默认值。
newState H3.Workflow.Instance.WorkflowInstanceState 流程新状态(如“已通过”),非流程表单可传入默认值。

返回值

类型 描述
ResponseContext 表单动作执行结果上下文,包含响应数据(如表单数据、错误信息)、状态码等,供前端渲染使用。

Deserialize 方法

功能

将 JSON 格式字符串反序列化为指定类型的对象,简化表单请求数据解析(如将前端提交的 JSON 参数解析为业务模型)。

接口定义

protected T Deserialize<T>(string value);  

参数说明

参数名称 是否必填 类型 描述
value string 待反序列化的 JSON 格式字符串(如前端提交的表单数据)。

返回值

类型 描述
T 反序列化后得到的指定类型 T 的对象;若字符串格式无效或类型不匹配,抛出 JSON 反序列化异常。

Serialize 方法

功能

将对象序列化为 JSON 格式字符串,用于表单响应数据构建或日志记录(如将业务对象数据序列化为前端可识别的 JSON)。

接口定义

protected string Serialize(object value);  

参数说明

参数名称 是否必填 类型 描述
value object 待序列化的对象(如表单响应数据、业务对象),支持引用类型、值类型及集合类型。

返回值

类型 描述
string 对象序列化后的 JSON 格式字符串;若对象为 null,返回 "null"