[ASP.NET MVC] 使用MVC模式開發一個功能的流程

  • 3334
  • 0

摘要:[ASP.NET MVC] 使用MVC模式開發一個功能的流程

學ASP.net MVC沒多久後,似乎有點略懂ASP.net MVC架構的撰寫流程,

在維基百科中,MVC模式指的就是三層架構模式,分別為模型(Model)、檢視(View)、控制器(Controller)

那到底要怎麼在ASP.net以MVC模式來撰寫呢?

在我的撰寫經驗中,通常會先建立模型(Model),在撰寫檢視(View),最後撰寫控制器(Controller)

舉個例子好了,以很多網站都會需要用到的登入頁面來說,

先建立模型(Model) UserInfoModel.cs :

public class UserInfoModel
{
    public string UserName { get; set; }
    public string Password { get; set; }
}

上面這樣就是一個最簡單的模型!(程式碼是臨時手打,不一定保證正確,但樣子就是這樣)

有了模型,我們就要將這個模型使用檢視(View)來顯示 Login.cshtml :

@model mvcproject.Models.admin.UserInfoModel

@using (Ajax.BeginForm("Login", "admin"))
{
    @Html.LabelFor(m => m.UserName)
    @Html.TextBoxFor(m => m.UserName)

    @Html.LabelFor(m => m.Password)
    @Html.TextBoxFor(m => m.Password)
}

像這樣就可以在網頁上顯示這個模型(類別)中的UserName跟Password的標籤文字與文字欄位,

但實際請求網址(xxx.com.tw/admin/login)的路徑是adminController.cs的login方法,

public class adminController : Controller
{
    public ActionResult Login()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Login(UserInfoModel userInfoModel)
    {
        // 可能將使用者帳號密碼跟資料庫比對etc code

        return View();
    }
}

這樣就完成一個用MVC模式開發登入頁面的流程,雖然開發是這樣,

但實際執行的順序卻是先用控制器→模組→檢視,才會將網頁原始碼回傳到Client Web Browser。

 

上述是我的開發經驗,如果有錯誤,請幫忙留言糾正,感謝。