一个 WEB 视图页面,由 3 个部分组成。

1. .cs 文件用于定义页面数据,需要添加 partial 修饰符,因为静态代码生成需要使用它生成页面输出与 JSON 输出代理函数。
添加继承自 AutoCSer.WebView.View 的 class,并且申明为 WEB 视图页面 [AutoCSer.WebView.View],支持全局默认配置
也可以添加继承自基于对象池支持实现 AutoCSer.WebView.View<viewType> 的 class,viewType 用于标识当前类型。
对于没有使用服务端数据与逻辑的纯客户端 HTML 页面模板,这个文件不是必须的。

2. .page.html 文件仅用于编译期定义HTML 模板,部署与运行时使用的是 Include 或者预定义符号展开后生成的页面模板文件 .html
如果存在 .cs 文件,需要添加一个与 class 同名的 类型名称.page.html,用于匹配页面服务端数据。

3. .page.js / .page.ts 文件必须与 .page.html 同名,用于定义页面脚本,部署与运行时使用的是 Include 或者预定义符号展开后生成的脚本文件 .js
当页面没有脚本需求的时候,这个文件不是必须的。
推荐使用 TypeScript 取代 JavaScript,虽然它生成的代码不够简洁,在使用上某些时候不如 JavaScript 来的直接,但是对于需要长期维护的项目,我觉得这些代价是值得的。

. 在某些应用中,页面可能需要接收参数或者存在某些依赖关系的数据,需要在初始化处理中手动处理;某些存在访问权限的页面,可能需要在初始化处理逻辑中决定是否继续访问当前页面。

无参初始化 参考示例 AutoCSer\Example\WebView\LoadView.cs
带参数初始化 参考示例 AutoCSer\Example\WebView\LoadViewQuery.cs
指定查询参数名称 参考示例 AutoCSer\Example\WebView\LoadViewQueryName.cs

. 设置 IsAsynchronous = true 支持异步输出,服务端必须保证 AsynchronousResponse() 被调用。

参考示例 AutoCSer\Example\WebView\ViewAsynchronous.cs

. 默认生成输出 HTML 的函数,是为了搜索引擎的抓取,对于需要权限才能访问的页面,建议使用 IsPage = false 禁用这个生成的函数,因为对于页面比较多的项目,生成的代码过多可能会在一定程度上影响编译效率。

参考示例 AutoCSer\Example\WebView\LoadView.cs