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 += "\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 基础和增删改、登录的更多相关文章
- MVC3+EF4.1学习系列(二)-------基础的增删改查和持久对象的生命周期变化
上篇文章中 我们已经创建了EF4.1基于code first的例子 有了数据库 并初始化了一些数据 今天这里写基础的增删改查和持久对象的生命周期变化 学习下原文先把运行好的原图贴来上~~ 一.创建 ...
- EasyUI + Spring MVC + hibernate实现增删改查导入导出
(这是一个故事--) 前言 作为一个JAVA开发工程师,我觉得最基本是需要懂前端.后台以及数据库. 练习的内容很基础,包括:基本增删改查.模糊查询.分页查询.树菜单.上传下载.tab页 主管发我一个已 ...
- 【ASP.NET MVC】jqGrid 增删改查详解
1 概述 本篇文章主要是关于JqGrid的,主要功能包括使用JqGrid增删查改,导入导出,废话不多说,直接进入正题. 2 Demo相关 2.1 Demo展示 第一部分 第二部分 2.2 ...
- week_one-python基础 列表 增删改查
# Author:larlly #列表增删改查#定义列表name = ["wo","ni","ta","wo"] #定义 ...
- mysql 的安装,密码及修改 ,权限,基础语句(增删改查)
参考网址:https://www.cnblogs.com/majj/p/9160383.html (安装等) https://www.cnblogs.com/majj/p/9160421.htm ...
- EasyUI +MVC +EF实现增删改查
OA项目的框架已经搭建好了,接下来就是在这个框架下完成相应的业务的编码,接下来实现UserInfo页面的增删改查. 1.首先先谈一下遇到的一个框架上的问题:提示EF版本不一致之类的问题,主要是解决方案 ...
- 六:MVC数据建模(增删改查)
今天我们来学习mvc增删改查等操作(试着结合前面学习的LINQ方法语法结合查询) 我创建了一个car的数据库,只有一个Cars表 表里面就几个字段 插入了一些数据 想要创建一个ADO.NET实体数据模 ...
- 使用jdbc实现简单的mvc模式的增删改查
Mvc模式设计: 视图:添加界面(addUser.jsp),修改界面(updateUser.jsp),显示页面(allUser.jsp) 控制器:添加信息控制器(AddUserServlet),修改信 ...
- SSM-MyBatis-02:Mybatis最基础的增删改查(查全部和查单独一个)
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 继续上次的开始,这次记录的是增删改查,上次重复过的代码不做过多解释 首先先创建mysql的表和实体类Book ...
随机推荐
- 在Ubuntu下进行MongoDB安装步骤
一. 在Ubuntu下最傻瓜的步骤(以下都在root用户下进行操作): 1.运行"apt-get install mongo" 如果遇到找不到安装包的话运行"apt-ge ...
- Stanford NLP学习笔记1:课程介绍
Stanford NLP课程简介 1. NLP应用例子 问答系统: IBM Watson 信息提取(information extraction) 情感分析 机器翻译 2. NLP应用当前进展 很成熟 ...
- 自己写的基于bootstrap风格的弹框插件
自己写的一款基于bootstrap风格的弹框插件,暂时只有确认框.提示框.后续功能扩展.bug修改再更新. ;(function($){ //默认参数 var PARAMS; var DEFAULTP ...
- Java 反射 getDeclareFields getModifiers setAccessible(true)
示例代码: public static Map<String, Object> dtoToMap(Object obj, String pre, String las ...
- CRM 启用或禁用自定义代码执行
启用自定义代码执行 1.打开 Windows PowerShell 命令窗口. 2.添加 Microsoft Dynamics 365 PowerShell 管理单元: Add-PSSnapin Mi ...
- system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)
类型转换 verilog中,任何类型的任何数值都用来给任何类型赋值.verilog使用赋值语句自动将一种类型的数值转换为另一种类型. 例如,当一个wire类型赋值给一个reg类型的变量时,wire类型 ...
- LEMP安装脚本
#!/bin/bash#LEMP Serverumount /dev/cdrommount /dev/cdrom /mediaIOS="/etc/yum.repos.d/rhel-debug ...
- IIS启用兼容模式设置(win2k3—Win7)
点击添加按钮(上图),弹出下面的对话框(下图).在自定义HTTP头名处输入: X-UA-compatible 在自定义HTTP头值处输入: IE=EmulateIE7 (输入时注意不要留下空格)输入完 ...
- 【小错误】ORA-00265: instance recovery required, cannot set ARCHIVELOG mode
1.错误描述:今天在起归档的时候报一下错误: SQL> alter database archivelog; alter database archivelog * ERROR at line ...
- 洛谷P3392 涂国旗
P3392 涂国旗 107通过 507提交 题目提供者kkksc03 标签 难度普及- 提交 讨论 题解 最新讨论 直接读字符会wa WA?-- 为什么不对... 跪求找错 快点给钱 这不就是荷兰 ...