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

章節一 MVC5

MVC全名是Model View Controller,是模型(model)——視圖(view)——控制器(controller)的縮寫,是一種軟件設計典範,提供了一種用業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯彙集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不須要從新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構。html

ASP.NET MVC是一種構建WEB應用程序的框架,它將通常的MVC模式應用於ASP.NET框架。ASP.NET MVC經歷了5個主要版本的迭代,其中ASP.NET MVC4和MVC5是目前比較成熟的版本。sql

ASP.NET MVC4主要功能包括:數據庫

①ASP.NET Web API;服務器

②加強了默認的項目模板;架構

③增長使用jQuery Mobile的手機項目模板;框架

④支持顯示模式(Display Mode);異步

⑤支持異步控制器的任務ide

ASP.NET MVC5主要功能包括:測試

①單一的ASP.NET開發組件;spa

②提供了新的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與界面;

 

相關文章
相關標籤/搜索