开源CMSCMS的基础路由定义 2021-07-22

例如,如果在英文名处输入的是company,那最类别URL地址将会变成/product/company这样更为友好的地址。

注意:在开发环境新增了模板,需要运行PackWidgetTemplate程序来打包所有的模板。

开源CMSCMS对服务器的硬件配要求非常低,当然这个跟访问量有关系。开源CMSCMS基于.Net 5性能卓越,使用一个最低配的服务器(512M内存)即可满足一个小中型网站的需求。

在添加导航组件时,或

在添加导航组件时,或者修改已添加的导航组件,选择对应的根结点即可:

ApplicationContext.CurrentUser //当前后端登录用户ApplicationContext.CurrentCustomer //前端用户

可以这样获取CMSApplicationContext

先看一下开源CMSCMS中的基础路由定义RouteDescriptors代码:

下载后,注意先删除包里面的App_Data目录后再解压覆盖原先的程序。


Windows环境请直接使用下列地址下载并安装最新版本的运行环境


工具栏中显示“布局”说明该内容块来自布局,修改该内容,会影响所有使用该布局的页面。

IsTrueValue两个方法都有同样一个重载,即可传入一个“WorkContext”。这个WorkContext可以理解为表达式的应用上下文,即表达式的工作“环境”,表达式可以在该“WorkContext”中取对应的值进行计算。

如果是.Net Core版本,建意不要使用IIS Express而是使用控制台来运行程序,以免插件生成失败。设置使用开源CMS.WebHost来运行程序:

namespace 开源CMS.Article.Service{    public class ArticleService : LocalizeService<ArticleEntity>, IArticleService    {        private readonly ILocalize _localize;        public ArticleService(IApplicationContext applicationContext, ILocalize localize, CMSDbContext dbContext)            : base(applicationContext, dbContext)        {            _localize = localize;        }        ...    }}

请视具体情况来确定是否使用LocalizeService<T>,如果业务比较特殊,也可自己做实现,或者重载基类方法。

ValueOfRuleProvider用于获取&ldquo;WorkContext&rdquo;中的值:

new RouteDescriptor{    RouteName = "pageRoute",    Template = "{*path}",    Defaults = new { controller = "Page", action = "PreView" },    Constraints = new { path = new PageRouteConstraint() },    Priority = -1}

注意:.NET Core版本为 PageController -> Main

如果是图片,我们将要取图片的src属性作为图片的地址。我们使用attr方法来取src属性。

所以当访问~/index时,就到了PageController -> Main进行处理。

您可以考虑使用以下服务器,或者其它任何云服务器供应商提供的VPS:

看到这个图,你看到了什么?&ldquo;品牌&rdquo;【标题】,&ldquo;请选择手机品牌&rdquo;【段落,文本】,&ldquo;苹果,华硕....&rdquo;【很多个图片】,把它们组合起来便是了。

ml

@using (Script.AtFoot()){    <script type="text/javascript">    </script>}

定义样式:

 public interface IDashboardPartDriveService : IDependency {     DashboardPart Create(); }
欢迎界面示例DashboardWelcomePartService
 public class DashboardWelcomePartService : IDashboardPartDriveService {     public DashboardPart Create()     {         return new DashboardPart        {             Order = -1,//排序             ViewName = "Dashboard.Welcome" //视图名称         };     } }
DashboardPart
 public class DashboardPart {     public int Order { get; set; } //排序     public string ViewName { get; set; } //视图名称     public object ViewModel { get; set; } //传到视图的Model }
视图Dashboard.Welcome.cshtml

在 Views 目录下面创建一个名为Dashboard.Welcome.cshtml 的视图文件,用于显示仪表盘的内容。

一个自定义组件,可以由多个分组构成,每个分组都有自己的显示模板。组之前可以垂直排列,或者水平删格排列(Bootstrap列),如下图:

添加焦点图视频演示

@model SectionGroup

接下来,我们将从分组中取出标题,段落,图片等内容:

[DefaultAuthorize(Policy = PermissionKeys.ManageArticle)]public override IActionResult Create(){ return base.Create();}

如果越权限访问,则会跳转到禁止访问页面。

KEY的组成格式为ClassName@PropertyName,例如产品的标题是:Product@Title

开源CMS提供了一个可视化的&ldquo;工具&rdquo;可以轻松的创建和规则布局。通过简单的拖拉操作,就可以快速的创建一个页面布局。