一、什么是MVC?
1、了解
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
Model(模型)表示应用程序核心(比如数据库记录列表)。
View(视图)显示数据(数据库记录)。
Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
2、创建视图引擎:ASPX的MVC
文件--新建--项目--ASP.NET MVC 4 Web应用程序--命名--确定--选择模板:空--视图引擎:ASPX
3、MVC三层
(1)Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
(2)View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
(3)Controller(控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
4、控制层
(1)添加控制器
找到Controllers文件夹右键添加控制器,命名:HomeController,不要少Controller
(2)动作Action
public string one() { return "您好!!"; }
5、控制层与视图层
(1)控制层链接视图层
public ActionResult Index() { return View(); }
(2) 添加视图
在“return View();”上右键添加视图,选择ASPX,其余都不选
6、控制层与模型层
(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; }
7、模型层与视图层
(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>
二、MVC增删改
1、添加
(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");//跳转到主页 }
2、删除
(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"); }
3、修改
(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
4、路由传值和问号传值
(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>
三、登录
(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; }%>