欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET MVC 开源建站系统

程序员文章站 2022-03-23 19:43:58
一个挺有意思的项目,跟拼图一样的创建网站,先来几张gif感受一下: 官方地址: 下载地址:https://github.com/seriawei/asp.net-mvc-cms/releas...

一个挺有意思的项目,跟拼图一样的创建网站,先来几张gif感受一下:

ASP.NET MVC 开源建站系统

ASP.NET MVC 开源建站系统

ASP.NET MVC 开源建站系统

官方地址:

下载地址:https://github.com/seriawei/asp.net-mvc-cms/releases

github:https://github.com/seriawei/asp.net-mvc-cms

开源中国社区:http://git.oschina.net/seriawei/asp.net-mvc-cms


演示地址:

后台:

用户名,密码:admin


zkeacms是基于easyframework,使用asp.net mvc4开发的开源cms。

zkeacms一个内容管理软件(网站)。zkeacms不仅只是管理内容,更是重新定义了布局、页面和,让用户可以*规划页面的布局,页面和内容。

zkeacms使用可视化编辑设计,真正做到所见即所得,可直接在预览页面上设计页面。

zkeacms采用插件式设计,支持扩展新插件。

架设环境:

windows server 2003,iis 6 或以上

mssql 2005 或以上

.net framework 4.0,mvc 4

开发环境

microsoft visualstudio 2013

microsoft sql server 2005 以上

关于项目的特性大家到官网去看看就好了,这里主要讲讲code:

资源管理与应用(js/css):

资源定义

script("jquery").include("~/scripts/jquery-1.11.2.min.js", "~/scripts/jquery-1.11.2.min.js").requiredathead();
script("bootstrap").include("~/content/bootstrap/js/bootstrap.js", "~/content/bootstrap/js/bootstrap.min.js").requiredatfoot();
script("jqueryui").include("~/scripts/jquery-ui/jquery-ui.js", "~/scripts/jquery-ui/jquery-ui.min.js");
style("bootstrap").include("~/content/bootstrap/css/bootstrap.css", "~/content/bootstrap/css/bootstrap.min.css").requiredathead();
style("bootstraptheme").include("~/content/bootstrap/css/bootstrap-theme.css", "~/content/bootstrap/css/bootstrap-theme.min.css").requiredathead();
style("site").include("~/content/site.css", "~/content/site.min.css").requiredatfoot();

这里是对脚本和样式文件的定义,显示调用requiredathead()/requiredatfoot(),则无需主动加到页面中,默认都会使用该资源文件,加到页面的开头或者结尾。

资源的使用(.cshtml):

style.reqiured("site").athead();
script.reqiured("jqueryui").atfoot();
@using (script.atfoot())
{
    <script type="text/javascript">
        function create(xxx) {
           
        }
    </script>
}

为什么需要这样管理资源?因为zkeacms的页面是由不同的组件构成的,完全由用户选择在页面中显示什么组件,而不同的组件会需要不同的js或css,因此需要动态加载这些资源文件。

简单的数据和视图配置(元数据注册):

    [dataconfigure(typeof(carouselentitymetadata))]
    public class carouselentity : editorentity
    {
        public long? id { get; set; }

        public int? height { get; set; }

        public list carouselitems { get; set; }

    }
    class carouselentitymetadata : dataviewmetadata
    {
        protected override void dataconfigure()
        {
            datatable("carousel");
            dataconfig(m => m.id).asincreaseprimarykey();
            dataconfig(m => m.carouselitems).ignore();
        }

        protected override void viewconfigure()
        {
            viewconfig(m => m.id).ashidden();
            viewconfig(m => m.carouselitems).aslisteditor();
            viewconfig(m => m.height).ashidden();
        }
    }

编辑页面直接使用editorformodel:

在视图配置完以后(.astextbox(),.asdropdownlist()...) 直接调用editorformodel即可自动生成表单:

@html.editorformodel()

列表页面:

@(
 html.grid().setcolumntemplate(col => {
     col.add(m => m.title, "

filterconfig:

以前我们这样写:


[viewdataarticletype]
public override actionresult edit(articleentity entity)

现在我们这样写:


registry.register(m => m.edit(null));

灵活的service


service.add(entity);
service.count(m=>m.id=1);
service.delete(primarykey);
service.delete(m=>m.id=1);
service.get(primarykey);
service.get(m=>m.id=1);
...

实现却如此简单:


public class carouselservice : servicebase
{
}

。。。。。。

写得很简单,可是还有很多,有兴趣的就下下来玩玩吧。