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 ...
随机推荐
- js正则表达式学习
//几种字符串操作:var str = 'abcdef'; alert(str.search('b')); //弹出1:返回的是b在str中的位置:如果找不到返回-1: alert(str.subst ...
- python 2day
一 优化 username='alex' password=‘alex123’ 可以写成 username,password =‘alex’,'alex123' 二.再次优化 for i in ran ...
- Windows动态库学习心得
最近在工作中需要给项目组其他成员提供调用函数,决心抛弃以前“拷贝头文件/源文件”的简陋方法,采用动态库的方式对自己开发的接口进行模块化管理.因之前一直没有机会从事Windows动态库的开发,现借助这个 ...
- SIP 解析
1 general-header类: 为描述消息基本属性的通用头域,可用于请求消息或响应消息:通用头域的域名只有在协议版本改变时才可有效地扩展.不过,通信中的所有方均认为是“通用头域”的新的头域也可认 ...
- vs2010通过添加资源文件,修改win32创建的窗口
1.右键项目的“资源”,新建资源,生成.rc文件 2.进入资源视图创建icon或menu等资源 3.退出资源视图,编译这个.rc文件 4.项目源代码中添加如下几个头文件 #include " ...
- Android: R cannot be resolved to a varia...
Android: R cannot be resolved to a varia... 2012-07-27 10:58:32 上传者: wangdao下载(0) 浏览(57568) 评论(0 ...
- ios 设置声音和震动,单独控制
一.今天项目中涉及了设置这快的声音震动和响铃,搞的头大,以前搞过,只是简单的调用系统的方法就可以实现,但是现在的公司要求,震动是震动,响铃是响铃,我看了微信,微信也是的分开的,做的很好,但是我就纳闷了 ...
- MCV之行为
在Controller中的方法都称为行为,所以的公共方法都可以在浏览器中调用,返回值为:ActionResult的类型或其子类,这个类为抽象类,所以这为抽象编程,方法的结果返回为直接或间接继承自Act ...
- CSS3按钮鼠标悬浮光圈效果
1 .HTML相关知识点 HTML(超文本标记语言)是网页的核心.首先你要学会,不要害怕,HTML很容易学习的,刚开始多记多练,但是到最后还是要自己深入专研,简单的入门是很快,但学好HTML是成为W ...
- A quick introduction to HTML
w3c reference : https://www.w3.org/TR/2014/REC-html5-20141028/introduction.html#writing-secure-appli ...