• 鉴于初学mvc时,网上资料较少的情况,特开此连载博客,使初学者少走一些弯路。另:我也是初学者,有不对的地方望指正,共同学习。 工程详情:VS:2013 SqlServer:2014 EF:6.0 vs和sqlserver的安装过程不再赘述。 ...

    鉴于初学mvc时,网上资料较少的情况,特开此连载博客,使初学者少走一些弯路。另:我也是初学者,有不对的地方望指正,共同学习。
    工程详情:VS:2013
    SqlServer:2014
    EF:6.0
    vs和sqlserver的安装过程不再赘述。
    这里我已经创建几张表,仅供测试使用。(User_Master Menu_List Menu_List_Access)后两张表以后做权限管理时使用。
    User_Master表
    数据库完成后,就可以开始我们的工程的搭建。
    这里我们使用的在 解决方案下建立Model(实体),Manager(业务处理),Common(工具),Service(持久)的类库,并且建立一个MVC4的项目的模式。
    这种方案的好处在于,若因业务需求增加子系统时,可用共用上述的代码,减少代码的重构,可扩展性较高。
    1.建立Mode的类库:
    这里写图片描述
    方案的名称改为Arise(你的项目名称),
    2.建立Common的类库
    Common的类库
    这里是直接右键 项目解决方案 单击添加,这样可以默认是建立在该项目解决方案下。
    3.建立Service的类库(同上)
    4.建立Manager的类库(同上)
    5.建立mvc项目:
    同样右键解决方案=》添加
    Web项目
    选项
    最终你的解决方案视图应该是这样的:
    视图
    这个时候最终的一步是单击 解决方案 生成。
    生成后接下来需要进行一些基本的配置:
    1.将各个类库下生成的默认页面删除(看着可不舒服)
    2.写过项目的都知道,在manager中要调用server,control中要调用manager,
    而common和model在每个层次中都能用到。
    因此我们要在service中添加 common,model类库的引用。
    在manager中添加common,model,service类库的引用。
    在control中添加common,model,manager类库的引用。
    这里写图片描述
    这里写图片描述
    这里写图片描述
    3.(对初学者而言),别忘了把web设为启动项。因为第一个建立的是model类库,默认为启动项。
    至此项目基本环境和设置已经完毕,关于EF的设置请继续查看下一章。

    展开全文
  • 一、如图:新建项目选择如图所示点确定。二、按图所示,选择三、此时项目如下图:四、右键Controllers文件夹-->添加-->控制器,出现下图:五、这里一定要写HomeController。点确定六、右键如图Index()-...

    一、如图:新建项目选择如图所示点确定。


    二、按图所示,选择


    三、此时项目如下图:


    四、右键Controllers文件夹-->添加-->控制器,出现下图:


    五、这里一定要写HomeController。点确定


    六、右键如图Index()-->添加视图出现下图:


    七、按如图所示,修改页面


    八、可以运行了。如图:


    欢迎拍砖。。。

    展开全文
  • 上面我们介绍到mvc框架项目搭建,并且完成了数据实体的映射。上一篇遗留的问题: 经过测试,上一篇中Common类库,在删掉默认的cs页面后,竟然不能被其他类库(如:service,manager)引用,在使用using时根本不...

    上面我们介绍到mvc的框架项目搭建,并且完成了数据实体的映射。

    上一篇遗留的问题:
    经过测试,上一篇中Common类库,在删掉默认的cs页面后,竟然不能被其他类库(如:service,manager)引用,在使用using时根本不能引用,而在引用中我已经添加了common的dll文件。这一点令我很不解,而其他类库在删除默认的cs页面后,可以被正常使用。这里如果有跟我一样的朋友,不要将默认页面删掉,就可以正常使用了。有了解的大神么?请在评论区解释一下。

    这一篇我们将会将整个项目调试通,在页面显示一些信息。不做过多的处理。写这个目的也仅仅是为了初学者能够对mvc4有个了解。在以后有时间会更新一个菜单权限管理的项目例子,因为setting这一块在任何中大型项目中均会用到,因此对着了解也是有必要的。

    废话一大篇开始正式内容,上一篇的model视图应该是这样的:

    这里写图片描述

    这里EF帮助生成了一个名为App.Config的文件,这里面有我们使用的connectionString:

    这里写图片描述

    这里我们使用第二个,将其复制到Web下面的Web.Config文件中:
    要放在configuration标签下:

    这里写图片描述

    这里面的参数不在过多描述,初学者可以找一下相关的博客。

    至此,配置一个基础mvc项目的所有配置都已经完成。一直看下来的你相信对mvc的架构已经大致了解了。若过以前学过java的mvc开发或者SSM,SSH架构的对此更是了然于胸。不错,这个与Java的mvc模式有很大程度上的相似。

    下面写一个Demo,仅供学习参考,在最后我会将源代码开放出来,但是我不敢确定会不会因为vs和sqlserver的版本不一致而引发问题。

    显示Demo:
    Service层:
    service层使用Linq与数据库进行数据交换,至于linq与sql语句之间的优缺点不在赘述,我的其他博客有介绍,亦可以到网上搜寻相关信息。

    这里写图片描述

    代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Arise.Model; //手动添加
    using Arise.Common;//手动添加
    
    namespace Arise.Service
    {
       public  class Login_Service
        {
           public User_Master GetUserMaster()
           {
               using (AriseEntities ariseEntities = new AriseEntities())
               {
                   return ariseEntities.User_Master.FirstOrDefault();
               }
           }
        }
    }
    

    里面就一句简单的代码,使用实体获取第一行的User_Master对象。

    Manager层:(进行业务上处理,这里没什么作用)

    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Arise.Common;
    using Arise.Model;
    using Arise.Service;
    
    namespace Arise.Manager
    {
        public class Login_Manager
        {
            private Login_Service loginService = new Login_Service();
            public User_Master GetUserMaster() 
            {
                return loginService.GetUserMaster();
            }
        }
    }
    

    Controller:(负责数据的接受和视图的转发)

    创建过程:
    Controller右键 =》添加=》控制器
    这里命名必须是以Controller为结尾。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using Arise.Common;
    using Arise.Model;
    using Arise.Manager;
    
    namespace Arise.Web.Controllers
    {
        public class HomeController : Controller
        {
            //
            // GET: /Home/
    
            public ActionResult Index()
            {
                Login_Manager loginManager = new Login_Manager();
                User_Master userMaster = loginManager.GetUserMaster();
                ViewBag.name = userMaster.User_Name;
                return View();
            }
    
        }
    }
    

    这里我要介绍一下controller一些相关的东西。

    当方法的返回值为ActionResult ,表示返回一个视图,视图名为方法名。
    ViewBag,可以将数据带到View中,显示。类似于java中的request域中的parameter参数。

    View层:(视图层)这里只是一个演示页面。

    View中创建一个名字与Controller名相同的文件夹,
    在文件上右键=》添加=》视图
    这里视图的命名也是有规则的,需与返回视图的方法的方法名相同。这里就是Index了。

    @{
        ViewBag.Title = "Index";
    }
    
    <h2>@ViewBag.Name</h2>
    

    这里只是为了测通系统,没有做页面的处理。
    @ViewBag:取出放在ViewBag中的内容。

    最终成功页面:

    这里写图片描述

    好了,这里成功的讲数据库中的Name列取出来,并显示。这样表示我们系统处于通过状态。

    一个简单的入门Demo完了,希望能够对初学者有所帮助。接下来我会使用这个框架持续更新一个menu的授权项目,希望多关注。

    展开全文
  • 框架总分2个项目:一个帮助类项目、一个Web开发项目 ,Zy.Utilities、ZyCommon 1、ZyCommon,Web开发项目结构

    框架总分2个项目:Web开发项目、帮助类项目 (ZyCommon、Zy.Utilities)

         

        

    1、ZyCommon,是Web开发项目结构。新建一个空解决方案,再建Data、Service、ZyWeb解决方案文件夹,把数据层、接口服务层、Web层区分开

          

        1.1、Data解决方案下----Zy.Xn.Model 数据模型项目,设计好System下 组织机构、菜单、角色、角色菜单、角色用户、用户实体类,Models是系统使用的一些DTO基类,比如ztree控件需要的一些实体字段,角色菜单DTO,BaseModel是一个基类,存放一个Id自动增长的字段,供System下的多个实体引用

                  

        1.2 、Data解决方案下----Zy.Xn.Entity 实体项目,用来管理实体上下文的,添加Entity Framework的引用,添加 Zy.Xn.Model  的引用,把实体类放到上下文类中,在App.config配置好连接数据库,然后使用Code First创建表,以后每次更新数据库表字段,只需要更新Model项目中的实体类,使用Code First Migrations 命令更新即可,初始时需要 Enable-Migrations ,启用迁移后会在实体项目下生成 Migrations文件夹,存放每次迁移的记录,至此Data层的功能大致是如此的

                命令:工具--NuGet包管理器--程序包管理器控制台--默认项目选择Zy.Xn.Entity 上下文项目

                添加迁移报告:add-migration 20160911 

                更新到数据库:update-database

                迁移至指定版本(包括后退):Update-Database –TargetMigration: $InitialDatabase

                得到SQL脚本(部署到服务器时很有用) : Update-Database -Script -SourceMigration: 最开始版本号-TargetMigration: 结束版本号

                 

       

       1.3、Service解决方案下 ---- Zy.Xn.IServices 服务接口层,面向接口编程,好处多多

       1.4、Service解决方案下 ---- Zy.Xn.Services 服务实现层

       1.5、Web项目,新建Areas,多个项目只要在Areas下建多个项目即可,后台管理系统放在Admin文件夹下,系统所用的JS、CSS、Images等存放在Content文件夹下

              


       2、Zy.Utilities 所有帮助类、依赖注入、基类控制器等再此项目下实现

             

         2.1、Zy.Utility.Core项目提供所有的帮助类,如:异常类、日志类、IOHelper、ImageHelper,PageModel(列表基类) 等等系统可能用到的帮助类,日志类会专门开一篇文章讲解,如何在项目配置Log4日志,报错后怎么把错误信息写入日志

         2.2、Zy.Utility.ServicesProvider项目是服务代理提供者,也就是 Autofac依赖注入的实现

         2.3、Zy.Utility.WebFramework项目提供控制器基类、接口服务帮助类、Bundles帮助类(读取js、css配置节点)

             2.3.1、控制器基类,重写异常捕获方法并把错误信息写入日志,获取当前登录用户,Session失效后重定向的控制器等功能,给Web项目使用

             2.3.2、bundles在web项目中的实现,新建一个admin.bundles文件,使用它的好处是可以压缩js、css,减少网络流量,当然,也可以在项目中App_Start--BundleConfig中配置,不过没有自定义实现方便


    展开全文
  • C#MVC详解及MVC搭建

    2019-05-11 14:20:44
    约定大于配置:恶心的“配置文件地狱”,基础阶段按照默认配置来,先不管复杂、难懂的“路由”等。

    什么是ASP.Net MVC?
    HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大、工作量大。因此提供了ASP.Net MVC、ASP.Net WebForm等高级封装的框架,简化开发,他们的底层仍然是HttpHandler、HttpRequest等这些东西。比如ASP.Net MVC的核心类仍然是实现了IHttpHandler接口的MVCHandler。

    ASP.net WebForm、和ASP.net MVC的关系?
    都是对HttpHandler的封装框架,ASP.net WebForm是微软为了让开发ASP.Net像开发WinForm一样傻瓜化发明的框架,有很多缺点;ASP.net MVC采用了MVC的思想,更适合现代项目的开发,因此ASP.net MVC在逐步取代ASP.Net WebForm。

    为什么ASP.Net MVC更好?
    程序员有更强的掌控力,不会产生垃圾代码;程序员能够更清晰的控制运行过程,因此安全、性能、架构等更清晰。WebForm和ASP.netMVC在“入门”和“深入”两个要素之间正好相反。

    什么是MVC模式?
    模型(Model)、视图(View)、控制器(Controller)
    在这里插入图片描述

    ASP.net MVC与“三层架构”
    ASP.net MVC与“三层架构”没有任何的关系。三层架构中的UI层可以用ASP.Net MVC来实现。

    约定大于配置
    “约定大于配置”:恶心的“配置文件地狱”,基础阶段按照默认配置来,先不管复杂、难懂的“路由”等。

    ASP.net MVC 起步

    1. 项目的创建:讲课使用VS2015,用VS2013也可以,新建项目→Visual C#→Web→【ASP.Net Web应用程序】
      ,不要勾选【将Application
      Insights添加到项目】,然后【确定】。在下一步的界面中选中“Empty”(初学者不要用MVC的模板项目,会太乱),勾选【MVC】,不要勾选【Host
      in the cloud】。一定注意:上面图标选“empty”,不要选“MVC”;下面勾选MVC,否则会生成很多没用的代码。
      在这里插入图片描述
    2. 控制器的建立、视图的建立
      :在Controllers文件夹下点右键→【添加】→【控制器】→选择【MVC5控制器-空】,类的名字以Controller结尾,比如“TestController”,会自动在Views文件夹下创建一个Test文件夹(如果不新建就手动建,这个文件夹的名字必须是TestController去掉Controller),在Views/Test下新建视图Index(和TestController的Index方法一致):添加→视图
      在这里插入图片描述
    3. 新建一个用来收集用户参数的类:IndexReqModel(类名无所谓)包含Num1、Num2两个属性(只要不重名,大小写都可以)。然后声明一个IndexRespModel类用来给view传递数据显示,有Num1、Num2、Result。也可以同一个类实现,但是这样写看起来比较清晰。
      在这里插入图片描述
    4. 在Index.cshtml如下编写
      在这里插入图片描述
    5. 调试启动后,浏览器访问:Index 画图分析执行过程、数据流动过程:当用户访问“/Test/Index?num1=1&num2=5”的时候,会找到Controllers下的TestController的Index方法去执行,把请求参数按照名字填充到Index方法的参数对象中(MVC引擎负责创建对象,给数据复制,并且进行类型的转换),reutrn
      View(resp)就会找到Views下的和自己的“类名、方法名”相对应的Index.cshtml,然后把数据resp给到Index.cshtml去显示。@model
      (要小写)
      WebApplication2.Models.IndexRespModel表示传递过来的数据是IndexRespModel类型的,@Model(大写开头)指向传递过来的对象。
      cshtml模板就是简化HTML的拼接的模板,最终还是生成html给浏览器显示,不能直接访问cshtml文件。
    展开全文
  • 一、MVC原理解析 二、HttpHandler 1.HttpHandler,IHttpHandler,MvcHandler的说明 2.IHttpHandler解析 3.MvcHandler解析 三、HttpModule 1.HttpModule能干什么 2.HttpModule的使用 ...
  • 框架基于VS2017搭建,不同版本的VS操作时可能会有些许不同。 由于本人也刚入此坑,如若文章中有错误之处,请指正交流。 创建项目 如下图,首先我们新建一个Web应用程序,注意名称和解决方案名称的修改,名称我一般...
  • C#MVC框架

    2019-09-25 17:06:11
    手把手教你搭建MVC架构,有不懂的或有问题的可以下区评论,欢迎一起探讨,求大神勿喷
  • 这是C# mvc 5框架快速搭建文档,包含bootstrap前端框架
  • 步骤一:需求分析 我的目标是利用MVC框架实现简单登陆验证...步骤二:搭建MVC框架 新建项目>WEB>WEB应用程序 步骤三:先添加一个控制器,然后VIEWS文件夹下找到对应和控制器同名文件夹里面搭建VIEW界...
  • ASP.Net MVC框架搭建

    2020-05-01 18:22:02
    框架搭建的初衷: 1.平时工作就是敲代码,做了N多个项目,每上一个项目都要重新修改一些重复性的代码(这些代码完全可以省略,通过继承,反射等等的方式简化开发量)。 2.项目成员不固定,水平参差不齐,没有...
  • C# MVC demo

    2020-07-11 23:30:58
    此demo是基于C#开发的一个简易MVC框架实例, 可以帮助初学者快速理解MVC框架开发思想。
  • Zy.Xn.IServices是接口,Zy.Xn.Services是接口的实现,在对应的项目下建立了System文件夹,系统框架的方法放在此文件夹下,所有接口服务需要继承 IService 类(依赖注入释放资源),在Zy.Xn.Service的实现类中需要...
  • 1、了解Redis Redis是一款开源的、高性能的键-值存储(key-value store)。它常被称作是一款数据结构服务器(data structure server)。Redis的键值可以包括字符串(strings)、哈希(hashes)、列表(lists)、集合...
  • C# MVC+EF—结构搭建

    2019-07-10 14:15:02
    近期做了MVC+EF的项目,现在项目完结了,抽个时间写个小DOM总结一下,顺便加深理解。 一、新建MVC项目,结构是这样的 App_Data:存放数据库文件。 App_Start:存放一些配置逻辑文件,常用的是路由配置。 ...
  • c# mvc基础框架+前端layui.js+sqlsugar处理数据(支持sql server、mysql、sqlite、Oracle)。 用户,角色和页面配置齐全,容易上手,非常适合小微型项目开发。
  • .netmvc框架

    2020-07-05 14:53:19
    一些.netMVC框架的基本用法以及一些基础的前端布局和母版
  • 好了,框架搭建,如果不了解,可能会觉得难以下手,了解之后,自然知道怎么做,只是其中的步骤,比起单纯的功能开发,是要繁琐不少,下面我们来一步一步搭建属于自己的框架,这里只列出重要步骤,其他未
  • 一、新建MVC项目 打开vs2013新建空的解决方案,在解决方案中增加一个MVC项目,如图: 删除不需要的文件,剩下如图所示的文件夹: 首先创建一个MVC5控制器(Login,登入使用),该控制器无需加...
  • 本事例为用MVC框架搭建的简单考勤系统,用XML来存储数据,包括管理员登陆和员工登陆。 员工登陆时记录当前时间及登陆用户名(暂无储存数据),管理员登陆后可进行对员工的“增、删、修改”等操作。 开发环境:...
1 2 3 4 5 ... 20
收藏数 4,432
精华内容 1,772