一、什么是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" %>

展示数据

 <table id="tb" style="width:90%;background-color:navy;margin:auto;text-align:center;">
<tr style="color:white;">
<td>用户名</td>
<td>密码</td>
<td>昵称</td>
<td>性别</td>
<td>出生日期</td>
<td>电话</td>
<td>邮箱</td>
<td>民族</td>
<td>地区</td>
<td>操作</td>
</tr>
<%
List<Users> ulist = new UsersData().select();
foreach (Users u in ulist)
{
%>
<tr class="tr_item" style="background-color:white;<%=u.sexstr %>">
<td><%=u.UserName %></td>
<td><%=u.PassWord %></td>
<td><%=u.NickName %></td>
<td><%=u.Sex?"男":"女" %></td>
<td><%=u.Birthday.ToString("yyyy年MM月dd日") %></td>
<td><%=u.phone %></td>
<td><%=u.email %></td>
<td><%=u.Nation1.Nationname %></td>
<td><%=u.Areastr %></td>
<td>
<a href="delete?name=<%=u.UserName %>" class="delete">删除</a>
<a class="update" href="updateusers?name=<%=u.UserName %>">修改</a>
</td>
</tr>
<% } %> </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();
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(-);
return RedirectToAction("Login0","Login");
}

(2)提示错误

使用Session["insertusers"]视图层对其判断

            <%
if (Session["LoginOK"] == "")
{
%>
<span style="color:red;font-size:18px;margin-left:50px;">用户名不存在!</span><br />
<%
}
if (Session["LoginOK"] == "")
{%>
<span style="color: red;font-size:18px;margin-left:50px;">密码错误!</span><br />
<% }
Session["LoginOK"] = null;
}%>

MVC 基础和增删改、登录的更多相关文章

  1. MVC3+EF4.1学习系列(二)-------基础的增删改查和持久对象的生命周期变化

    上篇文章中 我们已经创建了EF4.1基于code first的例子  有了数据库 并初始化了一些数据  今天这里写基础的增删改查和持久对象的生命周期变化 学习下原文先把运行好的原图贴来上~~ 一.创建 ...

  2. EasyUI + Spring MVC + hibernate实现增删改查导入导出

    (这是一个故事--) 前言 作为一个JAVA开发工程师,我觉得最基本是需要懂前端.后台以及数据库. 练习的内容很基础,包括:基本增删改查.模糊查询.分页查询.树菜单.上传下载.tab页 主管发我一个已 ...

  3. 【ASP.NET MVC】jqGrid 增删改查详解

    1   概述 本篇文章主要是关于JqGrid的,主要功能包括使用JqGrid增删查改,导入导出,废话不多说,直接进入正题. 2   Demo相关 2.1   Demo展示 第一部分 第二部分 2.2 ...

  4. week_one-python基础 列表 增删改查

    # Author:larlly #列表增删改查#定义列表name = ["wo","ni","ta","wo"] #定义 ...

  5. mysql 的安装,密码及修改 ,权限,基础语句(增删改查)

    参考网址:https://www.cnblogs.com/majj/p/9160383.html    (安装等) https://www.cnblogs.com/majj/p/9160421.htm ...

  6. EasyUI +MVC +EF实现增删改查

    OA项目的框架已经搭建好了,接下来就是在这个框架下完成相应的业务的编码,接下来实现UserInfo页面的增删改查. 1.首先先谈一下遇到的一个框架上的问题:提示EF版本不一致之类的问题,主要是解决方案 ...

  7. 六:MVC数据建模(增删改查)

    今天我们来学习mvc增删改查等操作(试着结合前面学习的LINQ方法语法结合查询) 我创建了一个car的数据库,只有一个Cars表 表里面就几个字段 插入了一些数据 想要创建一个ADO.NET实体数据模 ...

  8. 使用jdbc实现简单的mvc模式的增删改查

    Mvc模式设计: 视图:添加界面(addUser.jsp),修改界面(updateUser.jsp),显示页面(allUser.jsp) 控制器:添加信息控制器(AddUserServlet),修改信 ...

  9. SSM-MyBatis-02:Mybatis最基础的增删改查(查全部和查单独一个)

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 继续上次的开始,这次记录的是增删改查,上次重复过的代码不做过多解释 首先先创建mysql的表和实体类Book ...

随机推荐

  1. 使用maven一步一步构建spring mvc项目

    1      使用eclipse构建maven web项目 1.1新建Maven的web项目 打开菜单File –New-MavenProject. 点击Next 选择模板类型archtype——ma ...

  2. 解决 connect to host github.com port 22 operation timed out

    本来好好地.不知道为什么不能push了.估计是被墙,于是搜搜解决办法.改换端口 参考 https://mozillazg.com/2015/08/use-443-port-fix-github-con ...

  3. Intent传递List和Object和List<Object>

    一.传递List 传递List<String>的方法 小技巧,List<object> 可以使用json 转为 List<string>,就可以使用 List< ...

  4. 标签中id和name的作用和区别

    id:作为标签的唯一标识.name:作为可与服务器交互数据的HTML元素的服务器端的标示.

  5. CRM 启用或禁用自定义代码执行

    启用自定义代码执行 1.打开 Windows PowerShell 命令窗口. 2.添加 Microsoft Dynamics 365 PowerShell 管理单元: Add-PSSnapin Mi ...

  6. C++ 几种构造函数的区分和调用

    class A { public: A(); //默认构造 A( A& a ); //copy构造 const A& operator=( const A& a ); //赋值 ...

  7. Hibernate使用

    实现类: public class InfoDAOImpl extends BaseDao<Info> 1.List<Object[]> midlist=super.creat ...

  8. Python体验(09)-图形界面之Pannel和Sizer

    import wx class Form(wx.Frame): def __init__(self,parent,ID,title): wx.Frame.__init__(self,parent,ID ...

  9. wxWidgets编译安装gtk问题的解决办法

    下面是google到的一篇博文.我在centos5.3中想安装amule,结果编译时,提示没找到wxWidgets退出了.只好又去下了wxWidgets,还是源码,需要编译.编译中出现和下面这位网友一 ...

  10. Linux:history命令记录操作时间、操作用户、操作IP

    [步骤] 1./etc/profile文件中加入以下内容 2.执行:source /etc/profile [效果]