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"。 |