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以上版本
①新建項目
選擇MVC以下圖所示:
App_Data:應用程序本地存儲;
App_Start:應用程序配置邏輯文件;
RouteConfig.cs:配置MVC應用程序的系統路由路徑;
Content:該文件夾被推薦用於存儲靜態內容文件相似CSS 和 (圖片)Images;
Controllers控制器方法會返回一個頁面視圖,和Views中的html頁面一一對應
注意:界面必須和Controller中方法名字一一對應,否則會報錯;
①在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>
①首先在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); }
小三層架構示意圖:
①須要新增.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層:
展現數據:
這裏是在上面的基礎上新增長了一個數據鏈接層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; } }
①首先,須要自定義建立一個實體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與界面;