WebFuture 模板技术中心WebFuture 模板技术中心
首页
  • WebFuture

    • 概述
    • 网站部署
  • 帮助

    • 本站指南
  • 概述
  • 模板组成和目录
  • 模板编辑与管理
  • 模板相关功能清单
  • 模板命名规范
  • 标准模板库
  • 模板制作流程
  • 模板方案打包

    • 模板方案打包要求
    • 模板打包工具使用说明
    • 模板方案导入与站点应用
  • 附件

    • 规范命名对照表
  • 概述
  • 视图与组件
  • 组件使用示例
  • 内容模块常用组件

    • 文章模型
    • 图片模型
    • 视频模型
    • 内容模型
    • 公开信息模型
    • 档案模型
  • 功能模块常用组件

    • 站点类
    • 节点类
    • 广告类
    • 便民咨询类
    • 信访类
    • 问卷投票类
    • 值班管理
    • 扩展字段
  • 进阶应用

    • 应用:字段在列表页筛选
    • 应用:引导页后渐隐显示首页
  • 通用对象
  • 通用URL生成对象
  • 通用字符处理对象
  • 请求上下文对象
  • 数据传递对象
  • 一般URL生成对象
数据结构
  • 概述
  • 从WebFuture系统升级
  • 从SiteAzure系统迁移
常见问题
×
首页
  • WebFuture

    • 概述
    • 网站部署
  • 帮助

    • 本站指南
  • 概述
  • 模板组成和目录
  • 模板编辑与管理
  • 模板相关功能清单
  • 模板命名规范
  • 标准模板库
  • 模板制作流程
  • 模板方案打包

    • 模板方案打包要求
    • 模板打包工具使用说明
    • 模板方案导入与站点应用
  • 附件

    • 规范命名对照表
  • 概述
  • 视图与组件
  • 组件使用示例
  • 内容模块常用组件

    • 文章模型
    • 图片模型
    • 视频模型
    • 内容模型
    • 公开信息模型
    • 档案模型
  • 功能模块常用组件

    • 站点类
    • 节点类
    • 广告类
    • 便民咨询类
    • 信访类
    • 问卷投票类
    • 值班管理
    • 扩展字段
  • 进阶应用

    • 应用:字段在列表页筛选
    • 应用:引导页后渐隐显示首页
  • 通用对象
  • 通用URL生成对象
  • 通用字符处理对象
  • 请求上下文对象
  • 数据传递对象
  • 一般URL生成对象
数据结构
  • 概述
  • 从WebFuture系统升级
  • 从SiteAzure系统迁移
常见问题
  • 系统组件

    • 概述
    • 视图与组件
    • 组件使用示例
  • 内容模块常用组件

    • 文章模型
    • 图片模型
    • 视频模型
    • 内容模型
    • 公开信息模型
    • 档案模型
  • 功能模块常用组件

    • 站点类
    • 节点类
    • 广告类
    • 便民咨询类
    • 信访类
    • 问卷投票类
    • 扩展字段
  • 进阶应用

    • 字段在列表页筛选
    • 引导页后渐隐显示首页

概述

简介

WebFuture 模板以 W3C 的 WEB设计标准,遵循网站的“内容、结构、表现和行为”相分离的设计原则。模板页构成网页的结构、样式控制网页的表现、组件展现网页的内容,并辅以网页技术交互访问的行为,从而构成规范的网页体系。这些构成中有些会交织,如结构中除了布局外还会包含一定的内容、组件中除了内容外还会包含一定的结构、样式中除了控制显示形式外还会包含一定的行为等。在这些构成中,组件主要成为网页前台展示与后台数据库的纽带,调用数据库中的内容,从而在页面中展现和传达包含数据、文档、图片等数据信息。如下面 “默认首页.cshtml” 模板的示例代码中,展示了网页模板(即结构)中的部分代码:

  • 结构(模板页文件):.cshtml
  • 内容(组件文件):@Power.ArticleList(……)
  • 表现(样式文件):index.css
  • 行为(交互定义):<script>/<script>
@{
    Layout = $"~/Views/{this.Context.GetCurrentSite().Identifier}/Layout/公共布局页.cshtml";
    ViewBag.IsHome = false;
}
@section header {
    <link href="~/content/@(this.Context.GetCurrentSite().Identifier)/home/css/index.css" asp-append-version="true" rel="stylesheet" />
}
<div id="content">
    <!-- 热点关注 -->
    <dl class="headNew">
        <dt><span class="u">热点</span><span class="d">关注</span></dt>
        <dd>
            <ul>
                @Power.ArticleList("文章头条列表", new { Count = 4, Node = "xwzx", Tag = "热点关注", TitleLength = 46, TopicNum = 1, TopicTitleLength = 50, TopicContentLength = 0, TopicDisplayPic = false })
            </ul>
        </dd>
    </dl>
……
</div>
……
<script>
   jQuery("#indGhjh, #indGhjh1")
     ……
</script>
……

WebFuture 模板和组件对应于 MVC 中的视图和局部视图,都是以 .cshtml 为扩展名的视图文件,这些视图文件中均支持 Razor 语法。

CSHTML 即 C# Razor 语法的视图文件,是 MVC(Model-View-Controller)开发模式中的视图层,结合了 C# 语法和 HTML 组件。在 ASP.NET Core 中,我们通常使用 CSHTML 来创建 Web 应用程序的用户界面。

与传统的 ASP.NET Web Forms 相比,ASP.NET Core 使用 CSHTML 提供了更高效且更易于维护的视图层实现方式,同时还具有更好的扩展性和更强大的性能。

语法

在一个 CSHTML 文件中,使用 @{} 包裹起来的部分表示 C# 代码片段,可以包含变量、循环、条件语句等。

@{
    //C#语法
}

使用 @ 符号和变量名,可以在 HTML中 输出变量的值。

@{
    var name = "张三";
}
欢迎 @name 光临!

使用 @* 注释内容 *@ 包裹起来的表示注释该代码片段,使用双斜杠 // 在 C# 代码片段里注释单行。

@* 标题H1 *@
<h1>Hello world</h1>
@*
    <h1>代码演示</h1>
    <p>可以使用“@* *@”注释多行代码</p>
*@

@{
    // 姓名
    var name = "张三";
    // var userName = "admin";
}

布局视图

在每个视图文件中,可以通过修改 @{ Layout = "~/Views/_Common/Layout/基础布局页.cshtml" } 语句来指定使用的布局文件。

@{
    Layout = "~/Views/_Common/Layout/基础布局页.cshtml";
}
...

在布局文件中,使用 @RenderSection() 和 @RenderBody() 方法可以定义布局页面中的区块,并引用其它视图的内容。

@RenderSection("header", false) // 网站顶部区块
@RenderBody() // 具体的页面内容区块

脚本和样式

可以直接通过在 CSHTML 中引用 JavaScript 文件,来添加 JavaScript 功能到 Web 应用程序中。

<script src="~/content/_common/base/js/power.js" asp-append-version="true"></script>

同样,可以通过在 CSHTML 中引用 CSS 文件,为Web应用程序添加样式。

<link href="~/content/@(this.Context.GetCurrentSite().Identifier)/base/css/default.css" asp-append-version="true" rel="stylesheet" type="text/css" />

总结

CSHTML 是 ASP.NET Core 中的核心技术之一,提供了一种高效、易于维护、具有扩展性和性能优势的视图层实现方式。通过充分了解 CSHTML 语法和 MVC 开发模式,可以更好地开发Web应用程序。

帮助我们改善此页面!
最近更新: 2024/7/4 12:02
贡献者: Zen.Wu, zenkinwin
Next
视图与组件