Skip to content

简介

Rscms内容管理系统,使用AI生成创意文档,图片,视频;

一键发布内容到各大平台:小红书,今日头条,微信公众号,抖音

一秒完成上线
AI生成创意图片与文案 使用AI生成产品文案,公司文案,文章翻译

多语种支持

同时匹配pc端和手机端,微信公众号

支持使用md文件做为数据源

支持多种数据库 sqlite mysql sqlserver oracle

内置md编辑器编辑内容

下载

RsCms系统下载

部署

数据库

支持的数据库有:mysql ,sqlserver,sqlite

默认使用Sqlite数据库,rscms0.db是空库,rscms.db是示例库

通过appsettings.json文件,修改节点Database变更数据库类型,需要手动创建名称rscms的数据库

上传

上传文件接口为api/storage/local

上传的文件保存在wwwroot目录下 public文件夹中

部署步骤

1.首先打开数据库,创建名称为rscms的库

2.windows系统双击RsCms.WebApi.exe即运行RsCms系统

3.其它系统,下载相应压缩包

使用

浏览器访问https://localhost:6688 访问主页 浏览器访问https://localhost:6688/rscms/index.html 后台管理

ui开发

支持的UI框架ASP.NET Core Blazor,ASP.NET Core Razor Pages ,ASP.NET Core MVC,详情可以参考官方文档

通过visual studio2022 创建asp.net core web项目,修改项目输出类型为类库,开始编写UI,你只需要懂html,css,js和循环,条件判断这些知识即可进行开发

类库编译后替换项目同名文件即可生效

Razor Pages

Razor Pages项目目录结构

.
├── Pages                          # 视图目录
│		└── Shared							# 共享的页面存放位置
│			     └── _Layout.cshtml	     #布局页
│	   └── Page1.cshtml					   # 页面
│		└── _ViewImports.cshtml  			 # 项目命名空间
│		└── _ViewStart.cshtml				 # 起始页
├── Models                         # 常用业务实体
├── i18n                          # 国际化

Razor视图

Razor页面:文件名以.cshtml结尾

页面(带@page)和组件(不带@page),两者区别在于页面有路由,可以直接通过 URI 访问,一般放在 Pages 文件夹中;而组件,作为一个部件,必须嵌入其它组件中,在页面中显示,一般放到 Shared 文件夹中,供多个页面共享、复用。 可通过url访问的页面文件放到Pages文件夹中,可共享,复用的放到Shared文件夹中

视图优先级

text
/Pages/Header.cshtml
/Pages/Shared/Header.cshtml
/Views/Shared/Header.cshtml

page指令用来自定义路由,网页的url由它来定义,用方如下

csharp
@page "/"     //通过 http://xx.com/访问

@page "/products/{id}"  //通过 http://xx.com/products/xx 访问

@page "/products/{id:int}/{category?}"   //通过 http://xx.com/products/123/abc 访问   这里的问号表示该参数可以为空
    
@{
	//实例:获取路由参数
	@page "/news/{page?}"
	var pageParam = RouteData.Values["page"] as string;  //无page时,pageParam="/News"
	int page = pageParam == "/News" ? 1 : Convert.ToInt32(pageParam);
	
	//实例:获取请求参数
	var culture=Request.Query["culture"].ToString();
}

当html代码中己使用了@符号,在Razor中可以用@@代替

子页面

页面可重用的部分,放在Shared文件夹中

父页面调用子页面的方式

csharp
@{
    await Html.RenderPartialAsync("childPage");
}

_ViewImports.cshtml 项目命名空间

csharp
@using Microsoft.AspNetCore.Mvc.Localization
@using RsCms.UI
@namespace RsCms.UI.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@inject IViewLocalizer L

_ViewStart.cshtml 起始页

csharp
@{
    Layout = "_Layout"; // 引用布局页  布局文件真实文件位置 Pages/Shared/_Layout.cshtml
}

页面逻辑

js
//获取路由参数
var id=Model.RouteData.Values["id"]
//逻辑判断
@if(true)
{
    html代码
}
//偱环
@for(var i=0;i<10;i++)
{
    
}
//遍历
@foreach(var item in DemoModel)
{
    
}
//方法
@functions{
    //这里写c#代码
}
//页面重复的部分可以使用组件代替,创建Razor组件以_开头的命令的razor类型文件
创建到Shared文件夹
//页面之间传参

//添加母版页没有的js代码
@section js{
    <script></script>
}
//添加母版页没有的css代码
@section css{
    <style></style>
}

国际化

RsCms.UI项目i18n文件夹下创建多语言,

csharp
@L["home"]  //视图页这样调用  home是json文件中定义的key名称
资源名称圆点或路径命名
Pages.Index.en-US.json
Pages/Index/en-US.json路径

是选择使用圆点还是路径命名约定,具体取决于你想如何组织资源文件。


处理HTTP方法

Models文件夹中ApiHelper定义了CMS常用功能

csharp
//获取导航信息
Task<SiteNavigateModel[]> GetNavigateAsync();
//获取站点信息
Task<SiteInfoModel>GetSiteInfoAsync();
//获取文章信息
Task<ArticleModel> GetArticleAsync(string id);
//按短语获取文章信息
Task<ArticleModel> GetArticleBySlugAsync(string slug);
//分页查指定tag下的文章
Task<PageData<ArticleItemModel>> PageArticleByTagAsync(int page,int pageSize,string tag);
//查询指定组的设置信息
Task<SettingsDto[]> GetSettingsListAsync (string groupName);

AI

AI需要申请Token后,才能使用,步骤如下: 访问 https://localhost:6688/rscms/index.html 点击--设置--Token设置-->申请Token

关于作者

微信: runsoft1024