【C#MVC】搭建.netMVC4工程(三)

【C#MVC】搭建.netMVC4工程(三)

上面我们介绍到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层使用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为结尾。

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的授权项目,希望多关注。

posted @ 2021-01-04 13:36  不要摸我的腰  阅读(443)  评论(0编辑  收藏  举报