Orchard Core支持从Asp.net Core的RazorPages方法,通过视图层驱动整个网站
当前模式下OrchardCore默认只保护/Admin/区域,进行后台数据管理。前端由Razor视图驱动。
1、在新建立的OrchardCore项目中,新建wwwroot和Pages文件夹
- Pages 文件夹:创建 Razor 页面和支持文件。
- 每个 Razor 页面都是一对文件:.cshtml 文件,其中包含使用 Razor 语法的 C# 代码的 HTML 标记。.cshtml.cs 文件,其中包含处理页面事件的 C# 代码。
- 支持文件的名称以下划线开头。 例如:_Layout.cshtml 文件。
- wwwroot 文件夹:存放静态文件,如 HTML 文件、JavaScript 文件和 CSS 文件。 这些文件可以直接运行时被调用,比如:新建一个index.html文件,在运行使用文件名可能直接呈现。
2、在Pages文件夹建立index.cshtml文件,这是你网站默认的页面。注意:在页面的开始输入@page才可以正确调用。
@page
@section Header{
Header内容....
}
<h1 >Content内容</h1>
@{
var projects = await Orchard.GetRecentContentItemsByContentTypeAsync("Project",6);
}
<ul>
@foreach (var project in projects)
{
<li>
@project
@Html.Raw(project.Content.HtmlBodyPart.Html)
</li>
}
</ul>
3、在Pages文件夹下建立Shared文件夹,在其下建立支持文件_layout.cshtml,这是母版文件。
<!-- 通过inject直接视图注入OrchardCore相应服务 -->
@inject OrchardCore.IOrchardHelper Orchard
<!DOCTYPE html>
<html lang="@Orchard.CultureName()"><!-- 直接使用OrchardCore后端数据 -->
<head>
<meta charset="utf-8">
<title>OrchardCore</title>
<!-- 可以直接调取wwwroot文件夹下的内容-->
<link href="css/main.css" rel="stylesheet">
</head>
<body dir="@Orchard.CultureDir()">
@RenderSection("Header",required: false)
@RenderBody()
</body>
</html>
4、在Pages文件夹下建立_ViewStart.cshtml和_ViewImports.cshtml文件,视图页面在渲染时会默认先渲染当前文件夹下的这两个文件。
//_ViewImports 引入命名空间等方面
@inject OrchardCore.IOrchardHelper Orchard
@addTagHelper *, OrchardCore.Media
//_ViewStart与_layout相似
//只要文件夹下存在ViewStart.cshtml,在页面执行之前都会先执行_ViewStart,
//_Layout.cshtml不引用不会执行
@{
Layout="_layout";
}
网友评论