1. 程式人生 > 實用技巧 >MVC從新手到入門(一)----MVC專案搭建及簡單的查詢

MVC從新手到入門(一)----MVC專案搭建及簡單的查詢

一、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>

}

查詢功能也完成啦~,執行效果如下:

-----------------------------------------------------------------------------------------------------------

你學會了嗎?