【.NET框架】—— ASP.NET MVC5 初识(一)

章节一 MVC5

MVC全名是Model View Controller,是模型(model)——视图(view)——控制器(controller)的缩写,是一种软件设计典范,提供了一种用业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构。

ASP.NET MVC是一种构建WEB应用程序的框架,它将一般的MVC模式应用于ASP.NET框架。ASP.NET MVC经历了5个主要版本的迭代,其中ASP.NET MVC4和MVC5是目前比较成熟的版本。

ASP.NET MVC4主要功能包括:

①ASP.NET Web API;

②增强了默认的项目模板;

③增加使用jQuery Mobile的手机项目模板;

④支持显示模式(Display Mode);

⑤支持异步控制器的任务

ASP.NET MVC5主要功能包括:

①单一的ASP.NET开发组件;

②提供了新的Web项目体验;

③ASP.NET Identity;

④BootStrap模板;

⑤特性路由;

⑥身份验证过滤器;

 

开发环境支持:

MVC5需要.NET4.5,VS2013以上版本

1.1.创建MVC Web应用程序

①新建项目

 

选择MVC如下图所示:

 

1.2.MVC项目文档的结构

 

App_Data:应用程序本地存储;

App_Start:应用程序配置逻辑文件;

RouteConfig.cs:配置MVC应用程序的系统路由路径;

Content:该文件夹被推荐用于存储静态内容文件类似CSS 和 (图片)Images;

 

1.3.MVC5 Controller对应View页面

Controllers控制器方法会返回一个页面视图,和Views中的html页面一一对应

 

注意:界面必须和Controller中方法名字一一对应,不然会报错;

 

1.4.创建Model模型并向View展示数据

①在Model层中创建对应的User类,并在Controller层中Index方法中引入UserList;

public class TestController : Controller
    {
        // GET: Test
        public ActionResult Index()
        {
            User user = new User();
            user.Name = "测试人员1";
            user.Age = 24;
            User user2 = new User();
            user2.Name = "测试人员2";
            user2.Age = 23;

            List<User> userList = new List<User>();
            userList.Add(user);
            userList.Add(user2);

            return View(userList);
        }
    }

②在Views层中对应Controller的方法视图下进行展示;

视图引入模型

 @using 包文件

 @model IEnumerable<类>

展现数据

<ul>

        @foreach (类 a in Model)

        {

            <li>@a.Name</li>

        }

 </ul>

<!--视图引入模型-->
@using WebApplication01.Models;
@model IEnumerable<User>

@{
    ViewBag.Title = "Index";
}

<!--数据展示List集合-->
<ul>
    @foreach (User user in Model)
    {
        <li>@user.Name</li>
        <li>@user.Age</li>
    }
</ul>

 

1.5.创建数据库链接实现数据读取

①首先在App_Start文件下创建一个数据库连接类;

public class ConnData
    {
        public DataSet GetDataSet()
        {
            string myStr = "server=DESKTOP-3POL04N;database=stsc;UId=sa;password=123456";//获取链接字符串
            SqlConnection myConn = new SqlConnection(myStr);
            myConn.Open();//打开数据库
            string sqlStr = "select * from test01 ";//定义查询字符串
            SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myConn);//sql数据适配器
            DataSet myDs = new DataSet();//创建dataset
            myDa.Fill(myDs);//SqlDataAdapter填充DataSet


            return myDs;
        }
    }

②在Controller层中处理更新路由Index中的逻辑;

public ActionResult Index()
        {
            //使用数据库查询封装User
            ConnData conn = new ConnData();
            DataSet dataSet = conn.GetDataSet();
            User user = new User();
            user.Name = dataSet.Tables[0].Rows[0][1].ToString();
            user.Age = int.Parse(dataSet.Tables[0].Rows[0][2].ToString());

            User user2 = new User();
            user2.Name = dataSet.Tables[0].Rows[1][1].ToString();
            user2.Age = int.Parse(dataSet.Tables[0].Rows[1][2].ToString());
            List<User> userList = new List<User>();
            userList.Add(user);
            userList.Add(user2);

            return View(userList);
        }

 

1.6.MVC5+小三层架构

小三层架构示意图:

 

①需要新增.NET FrameWork项目Model(模型层)、Bll(逻辑业务层)、Dal(数据操作层)

 

 

 

②增加Model、Dal、Bll中的逻辑代码;

Model

  public class UserModel
    {
        string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        int age;

        public int Age
        {
            get { return age; }
            set { age = value; }
        }
    }

Bll层:

 public class UserBll
    {

        public List<UserModel> getUserData()
        {
            //使用数据库查询封装User
            UserDal userDal = new UserDal();  //Dal数据链接层处理数据
            DataSet dataSet = userDal.GetDataSet();
            UserModel user = new UserModel();
            user.Name = dataSet.Tables[0].Rows[0][1].ToString();
            user.Age = int.Parse(dataSet.Tables[0].Rows[0][2].ToString());

            UserModel user2 = new UserModel();
            user2.Name = dataSet.Tables[0].Rows[1][1].ToString();
            user2.Age = int.Parse(dataSet.Tables[0].Rows[1][2].ToString());
            List<UserModel> userList = new List<UserModel>();
            userList.Add(user);
            userList.Add(user2);

            return userList;
        }
    }

Dal层:

  public class UserDal
    {
        public DataSet GetDataSet()
        {
            //有了数据链接层Conn,这里更改为如下操作:
            string sqlStr = "select * from test01 ";//定义查询字符串
            var DataTable = DbHelperSQL.ExecuteDataTable(sqlStr);
            DataSet myDs = new DataSet();//创建dataset
            myDs.Tables.Add(DataTable);


            return myDs;
        }
    }

注意:Bll业务层需要增加项目依赖项,如下图

 

 

③需要在WebApplication01项目中处理Controller层和View界面层;

Controller层:

 

 

View层:

 

展示数据:

 

1.7.MVC5+小三层架构+数据连接层

这里是在上面的基础上新增加了一个数据连接层Conn;封装数据库连接与增删改查操作

 

之后修改Dal数据操作层,使用Conn中的DbHelperSQL封装Sql类来执行查询,构造DataSet:

public class UserDal
    {
        public DataSet GetDataSet()
        {
            //有了数据链接层Conn,这里更改为如下操作:
            string sqlStr = "select * from test01 ";//定义查询字符串
            var DataTable = DbHelperSQL.ExecuteDataTable(sqlStr);
            DataSet myDs = new DataSet();//创建dataset
            myDs.Tables.Add(DataTable);


            return myDs;
        }
    }

 

1.8.MVC5+EF框架

①首先,需要自定义创建一个实体Model类UserInfoModels;

  public class UserInfoModels
    {
        public int id { get; set; }
        public string name { get; set; }
        public int age { get; set; }
    }

 

②在Controllers控制器上创建MVC5的EF框架控制器;

 

 

 

③同时修改Web.config中的数据库连接connectionString配置,关联本地的数据库:

其中Data Source=DESKTOP-3POL04N为本地数据库服务器名,Initial Catalog为需要生成的数据库名称。

<add name="UserInfoContext" connectionString="Data Source=DESKTOP-3POL04N; Initial Catalog=UserInfoDB; Integrated Security=True;"
      providerName="System.Data.SqlClient" />

 

④点击视图Views文件夹下面的自定义模型视图Index.cshtml启动,这时会自动由EF框架生成数据库表UserInfoDB与界面;

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ASP.NET MVC 5是一种基于MVC设计模式的Web应用程序框架,它能够帮助开发人员快速地构建高性能、可扩展、易于维护的Web应用程序。ASP.NET MVC 5的源代码是开放的,可以供开发人员学习和使用。 ASP.NET MVC 5的源代码包括了许多组件,如控制器、视图、路由、模型绑定、过滤器等,每个组件为开发人员提供了丰富的功能和灵活的扩展性。例如,控制器是ASP.NET MVC 5应用程序的核心组件之一,它包含了Action(处理客户端请求的方法)和ActionResult(请求的结果)等。视图是另一个重要的组件,它负责呈现数据并与用户交互。路由是整个应用的核心,负责将请求路由到对应的控制器和Action。 ASP.NET MVC 5的源代码还包含了许多其他的实用工具和库,如ASP.NET Identity(用户认证和授权)、Microsoft.AspNet.Web.Optimization(前端资源优化)、Web API(RESTful服务)等,这些工具和库能够帮助开发人员构建更加丰富和复杂的Web应用程序。 总之,ASP.NET MVC 5的源码是开放的,它提供了丰富的组件、实用的工具和库,可以帮助开发人员快速构建高性能、可扩展和易于维护的Web应用程序。开发人员可以通过学习源代码来了解框架的内部实现和功能特性,并逐步提升自己的开发技能。 ### 回答2: ASP.NET MVC 5是一种使用MVC模式(Mode-View-Controller)的Web应用程序框架。它是基于.NET Framework的,可以用于创建高性能、可扩展、安全的Web应用程序。 以下是ASP.NET MVC 5框架的主要源码揭秘: 1. Routing:路由是ASP.NET MVC应用程序中的一个重要概念。它用于将URL映射到特定的控制器和操作方法。MVC 5框架中的路由引擎根据请求的URL和路由模板来确定请求应该由哪个控制器和操作方法处理。 2. Controller:控制器是MVC模式中的一个组成部分,它负责处理用户请求并生成响应。在MVC 5框架中,控制器有许多基础类和接口,如Controller类、IController接口等。 3. View:视图是控制器生成响应的一部分,它将模型数据呈现为HTML页面。在MVC 5框架中,使用各种视图引擎来呈现视图,如Razor视图引擎、ASPX视图引擎等。 4. Model:模型是MVC模式中的最后一个组成部分,它在控制器和视图之间传递数据。在MVC 5框架中,使用各种模型绑定器来将请求数据绑定到模型。 5. Bundling and Minification:Bundling和Minification是ASP.NET MVC中常用的技术,用于减少页面加载时间和资源使用。在MVC 5框架中,通过使用System.Web.Optimization命名空间中的类来添加和管理JS、CSS和其他资源的捆绑和缩小。 总之,ASP.NET MVC 5是一种功能强大的Web应用程序框架,它实现了MVC模式并提供了许多特性和工具来帮助开发人员构建高性能、可扩展、安全的Web应用程序。通过深入了解和分析MVC 5框架的源代码,开发人员可以更好地理解其内部工作原理,从而更有效地使用和扩展它。 ### 回答3: ASP.NET MVC 5是一种用于构建Web应用的框架,它使用模型-视图-控制器(MVC)的设计模式。本文将介绍ASP.NET MVC 5的源代码。 ASP.NET MVC 5的源代码主要分为几个部分:框架核心、路由、控制器、视图和模型。 框架核心是ASP.NET MVC 5的核心部分,提供了MVC框架的基本功能。其中包括建立请求管道、控制器工厂和视图引擎等关键组件。框架核心的代码是相当庞大的,包含了许多类、接口和扩展方法。在了解整个框架的实现细节时,框架核心是一个重要的起点。 路由是控制请求流程的重要组成部分。ASP.NET MVC 5使用的是基于URL的路由,它将请求URL映射到相应的控制器和操作上。路由的源代码中,关键部分是路由表的维护和查询机制。在了解路由的实现细节时,了解路由表的数据结构和查询算法是必不可少的。 控制器是MVC框架中的核心组件,它负责处理请求并返回响应。控制器的实现代码通常非常简单,主要是一些Action方法的定义和调用。控制器的源代码中,需要关注的是Action的参数绑定、Model验证和ActionResult的实现细节等。 视图是MVC框架中的UI组件,它通过生成HTML代码来渲染页面。视图的源代码中,关键部分是视图引擎的实现,它根据视图的文件名和模板来生成HTML代码。在了解视图的实现细节时,视图引擎是一个重要的组成部分。 模型是应用程序中的数据模型,通常与数据库中的数据结构相关。模型的源代码中,重点是数据访问层和实体类型的定义。在了解数据模型的实现细节时,了解数据访问层的实现和实体类型的定义是必要的。 总之,ASP.NET MVC 5的源代码非常庞大,也非常复杂。要彻底掌握它,需要对框架的核心、路由、控制器、视图和模型等组成部分进行深入研究。同时,我们也需要了解C#编程语言和.NET平台的底层机制。只有这样,才能真正揭秘ASP.NET MVC 5的源代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值