zoukankan      html  css  js  c++  java
  • MVC 基础和增删改、登录

    一、什么是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 += "	";
       }
        return end;
     }

    7、模型层与视图层

    (1)视图层放C#代码

          <% %>放C#代码

          <%@ %>引用命名空间,声明语言

          <%= %>输出一个变量或字段

    (2)引用命名空间

    <%@ Import Namespace="基础.Models" %>

    展示数据

     1 <table id="tb" style="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

    二、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");
        }           
        }
    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;
              }%>
  • 相关阅读:
    文件操作
    python中的函数递归和迭代问题
    函数的闭包与装饰器
    函数的名称空间和作用域
    python学习之路(四) ---函数
    python __name__问题
    浅谈python中的引用和拷贝问题
    Python中的缩进问题
    粘包现象
    socket编程
  • 原文地址:https://www.cnblogs.com/zhang-dandan-1/p/6133548.html
Copyright © 2011-2022 走看看