MVC 基礎和增刪改、登陸

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>
View Code

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");
    }           
    }
View Code
 public ActionResult Index()
  {
            if (Request.Cookies["user"] != null)
                return View();
            else
                return RedirectToAction("Login0", "Login");
           
   }
View Code
  //退出
        public ActionResult Exit()
        {
            Response.Cookies["user"].Expires = DateTime.Now.AddDays(-10);
            return RedirectToAction("Login0","Login");
        }
View Code

(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;
          }%>
相關文章
相關標籤/搜索