1、什麼是MVC?
一、瞭解
MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計建立 Web 應用程序的模式:
Model(模型)表示應用程序核心(好比數據庫記錄列表)。
View(視圖)顯示數據(數據庫記錄)。
Controller(控制器)處理輸入(寫入數據庫記錄)。
MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的徹底控制。數據庫
二、建立視圖引擎:ASPX的MVCide
文件--新建--項目--ASP.NET MVC 4 Web應用程序--命名--肯定--選擇模板:空--視圖引擎:ASPXpost
三、MVC三層spa
(1)Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。
一般模型對象負責在數據庫中存取數據。
(2)View(視圖)是應用程序中處理數據顯示的部分。
一般視圖是依據模型數據建立的。
(3)Controller(控制器)是應用程序中處理用戶交互的部分。
一般控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。
四、控制層設計
(1)添加控制器code
找到Controllers文件夾右鍵添加控制器,命名:HomeController,不要少Controllerorm
(2)動做Action對象
public string one() { return "您好!!"; }
五、控制層與視圖層blog
(1)控制層連接視圖層ip
public ActionResult Index() { return View(); }
(2) 添加視圖
在「return View();」上右鍵添加視圖,選擇ASPX,其他都不選
六、控制層與模型層
(1)在Models文件夾建立Linq,建立數據訪問類
(2) 控制層聯繫模型層
public string two() { string end = ""; List<Users> ulist = new UsersData().select(); foreach(Users u in ulist) { end += u.UserName; end += "\t"; } return end; }
七、模型層與視圖層
(1)視圖層放C#代碼
<% %>放C#代碼
<%@ %>引用命名空間,聲明語言
<%= %>輸出一個變量或字段
(2)引用命名空間
<%@ Import Namespace="基礎.Models" %>
展現數據
1 <table id="tb" style="width:90%;background-color:navy;margin:auto;text-align:center;"> 2 <tr style="color:white;"> 3 <td>用戶名</td> 4 <td>密碼</td> 5 <td>暱稱</td> 6 <td>性別</td> 7 <td>出生日期</td> 8 <td>電話</td> 9 <td>郵箱</td> 10 <td>民族</td> 11 <td>地區</td> 12 <td>操做</td> 13 </tr> 14 <% 15 List<Users> ulist = new UsersData().select(); 16 foreach (Users u in ulist) 17 { 18 %> 19 <tr class="tr_item" style="background-color:white;<%=u.sexstr %>"> 20 <td><%=u.UserName %></td> 21 <td><%=u.PassWord %></td> 22 <td><%=u.NickName %></td> 23 <td><%=u.Sex?"男":"女" %></td> 24 <td><%=u.Birthday.ToString("yyyy年MM月dd日") %></td> 25 <td><%=u.phone %></td> 26 <td><%=u.email %></td> 27 <td><%=u.Nation1.Nationname %></td> 28 <td><%=u.Areastr %></td> 29 <td> 30 <a href="delete?name=<%=u.UserName %>" class="delete">刪除</a> 31 <a class="update" href="updateusers?name=<%=u.UserName %>">修改</a> 32 </td> 33 </tr> 34 <% } %> 35 36 </table>
2、MVC增刪改
一、添加
(1)視圖層:
<form name="form1" action="insert1" method="post"> <h2> 人員信息添加</h2> 用 戶 名:<input id="Text1" name="usersname" type="text" /> <input id="Submit1" type="submit" value="添加" /> </form>
注意:(1)加上form表單 action="insert1" method="post" 不可少
(2)標籤加上name
(2)控制層:
//添加 public ActionResult insert1(string usersname) //括號內放標籤的name { Users u = new Users(); u.UserName = usersname; new UsersData().insert(u);//調方法添加 return RedirectToAction("Index2");//跳轉到主頁 }
二、刪除
(1)視圖層:
<a href="delete?name=<%=u.UserName %>" class="delete">刪除</a>//可以使用路由傳值和問號傳值
(2)控制層
public ActionResult delete() { string s=Request["name"];//取出傳過來的值 new UsersData().delete(s); return RedirectToAction("Index2"); }
三、修改
(1)往視圖層傳值
//跳轉到修改頁面 public ActionResult updateusers() { string s = Request["name"]; Users u = new UsersData().select(s); ViewBag.ha = u;//傳值 return View(); }
(2)視圖層
<% Users u=ViewBag.ha as Users;%>//視圖層接收值
<input id="Hidden1" type="hidden" name="usersname" value="<%=u.UserName %>" />
用 戶 名:<span style="color:black;font-size:19px;"><%=u.UserName %></span>
注意:用戶名不可更改,標籤不用text,使用隱藏域和span
四、路由傳值和問號傳值
(1)路由傳值
控制器的名字必須是Home,用id接收
<a class="update" href="updateusers/<%=u.UserName %>">修改</a>
(2)問號傳值,用string s = Request["name"];接收
<a class="update" href="updateusers?name=<%=u.UserName %>">修改</a>
3、登陸
(1)狀態保持
public ActionResult Login1(string usersname, string password) { Users u = new UsersData().select(usersname); if (u != null) { if (u.PassWord == password) { //Cookies傳值並保持狀態 Response.Cookies["user"].Value = usersname; Response.Cookies["user"].Expires = DateTime.Now.AddDays(7); return RedirectToAction("Index", "Home"); } else { return RedirectToAction("Login0", "Login"); } } else { return RedirectToAction("Login0", "Login"); } }
public ActionResult Index() { if (Request.Cookies["user"] != null) return View(); else return RedirectToAction("Login0", "Login"); }
//退出 public ActionResult Exit() { Response.Cookies["user"].Expires = DateTime.Now.AddDays(-10); return RedirectToAction("Login0","Login"); }
(2)提示錯誤
使用Session["insertusers"]視圖層對其判斷
<% if (Session["LoginOK"] == "0") { %> <span style="color:red;font-size:18px;margin-left:50px;">用戶名不存在!</span><br /> <% } if (Session["LoginOK"] == "1") {%> <span style="color: red;font-size:18px;margin-left:50px;">密碼錯誤!</span><br /> <% } Session["LoginOK"] = null; }%>