一、MVC簡介
MVC 是三種 ASP.NET 編程模式中的一種。
MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計創建 Web 應用程序的模式:
- Model(模型)表示應用程序核心(比如數據庫記錄列表)。
- View(視圖)顯示數據(數據庫記錄)。
- Controller(控制器)處理輸入(寫入數據庫記錄)。
MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。
二、快速搭建MVC(請使用Visual Studio 2015以上版本)
1、項目創建(我是用的Visual Studio 2019)
創建的時候選擇MVC項目
項目創建之后我們來看一下MVC應用程序的目錄結構,
這樣我們的MVC項目就創建好了。
二、具體內容的實現
我們用DB First的方式來呈現
首先是數據庫部分,我要做的是一個健康醫療管理系統,數據庫結構是這樣的
我們以科室表(Departments)為例
1、在Model中添加類
public class Department { [Key] public int deptID { get; set; } public string D_Name { get; set; } public string D_Desc { get; set; } }
2、在配置文件(Web.config)中添加數據庫連接字符串
注意:name="上下文類名"
<connectionStrings> <add name="CuseDBContext" connectionString="Data Source=.;Initial Catalog=CuseDB;Integrated Security=True" providerName="System.Data.SqlClient"/> </connectionStrings>
3、在Model中做數據庫的映射(上下文類的創建)
public class CuseDBContext:DbContext { public DbSet<Department> departments { get; set; } }
4、在Controllers中添加控制器,這里我們選擇添加一個空的控制器,控制器名字注意以Controller結尾,如:(DepartmentsController)
5、右鍵控制器Index位置,為控制器添加視圖
視圖添加后會在Views層自動生成這樣的目錄,這個后綴名為.cshtml的就是我們的視圖頁了。
6、在后台Index方法中獲取departments表的值,並傳遞給視圖(View)
CuseDBContext db = new CuseDBContext(); // GET: Departments public ActionResult Index() { var list = db.departments.ToList(); return View(list); }
7、在視圖頁編寫HTML代碼,
@model IEnumerable<HPIT.MVC7_27PM.Models.Department> 的主要作用是接收控制器中傳遞過來的值
@model IEnumerable<HPIT.MVC7_27PM.Models.Department> @{ ViewBag.Title = "Index";//標題 //Layout = null; //不適用母版頁 } <h2>Index</h2><table align="center" class="table"> <tr> <th> @Html.DisplayNameFor(m => m.deptID) </th> <th> @Html.DisplayNameFor(m => m.D_Name) </th> <th> @Html.DisplayNameFor(m => m.D_Desc) </th> </tr> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(m=>item.deptID) </td> <td> @Html.DisplayFor(m => item.D_Name) </td> <td> @Html.DisplayFor(m => item.D_Desc) </td> </tr> } </table>
這樣我們就完成了頁面數據加載的工作啦~,運行效果如下:
出現上面的效果說明我們項目已經跑通了,接下來我們再來完成一個小小的功能吧。
三、MVC項目簡單的查詢實現
我們以查詢科室名稱為例
1、在控制器中添加帶參數的ActionResult方法,因為我們要查詢的是科目,所以參數中的d_Name指的是科目名稱。
string d_Name = ""的寫法是為了避免出現d_Name為空的情況。
[HttpPost] public ActionResult Index(string d_Name = "") { var list = db.departments.Where(m => m.D_Name.Contains(d_Name)).ToList(); return View(list); }
2、在View層添加如下視圖頁面代碼
@*Form表單的另一種寫法*@ @using (Html.BeginForm()) { <table align="center" class="table"> <tr> <td>科室名稱:</td> @*@Html主要用來呈現HTML元素,也可以直接寫HTML代碼*@ <td>@Html.Editor("D_Name")</td> <td> <input type="submit" value="查詢" class="btn btn-primary" /> </td> </tr> </table> }
查詢功能也完成啦~,運行效果如下:
-----------------------------------------------------------------------------------------------------------
你學會了嗎?