MVC基础操作
C#-MVC基础操作-数据的展示及增删改、登录页面及状态保持
一、数据展示
1、View代码:
<%@Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>"%>
<%@Import Namespace="MvcApplication1.Models"%>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width"/>
<title>Main</title>
</head>
<body>
<table style="width:100%;text-align:center;"cellspacing="0" cellpadding="0" border="1">
<tr style="background-color:navy;color:white;">
<td>序号</td>
<td>用户名</td>
<td>密码</td>
<td>昵称</td>
<td>性别</td>
<td>生日</td>
<td>民族</td>
<td>班级</td>
</tr>
<%
List<Users>ulist=new UserData().Select();
foreach(Users u in ulist)
{
%>
<tr>
<td><%=u.ids %></td>
<td><%=u.username %></td>
<td><%=u.password %></td>
<td><%=u.nickname %></td>
<td><%=u.sex %></td>
<td><%=u.birthday %></td>
<td><%=u.nation %></td>
<td><%=u.@class %></td>
</tr>
<%} %>
</table>
</body>
</html>
2、页面展示
3、属性扩展性别、生日、民族、班级
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@ Import Namespace="MvcApplication1.Models" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width"/>
<title>Main</title>
</head>
<body>
<table style="width:100%;text-align:center;"cellspacing="0" cellpadding="0" border="1">
<tr style="background-color:navy;color:white;">
<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>
<td><%=u.ids %></td>
<td><%=u.username %></td>
<td><%=u.password %></td>
<td><%=u.nickname %></td>
<td><%=u.Convert.ToBoolean(u.sex)?"男":"女" %></td>
<td><%=Convert.ToDateTime(u.birthday).ToString("yyyy年MM月dd日")%></td>
<td><%=u.Nation1.nationname %></td>
<td><%=u.Class1.classname %></td>
</tr>
<%}%>
</table>
</html>
二、添加数据
1、设置<添加>按钮
<a href="/home/Insert">添加</a>
2、Home控制器下Insert动作代码:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>"%>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width"/>
<title>Insert</title>
</head>
<body>
<h1>添加新用户</h1>
<span>用户名:</span><input type="text"/><br/>
<span>密码:</span><input type="text"/><br/>
<span>确认密码:</span><input type="text"/><br/>
<span>昵称:</span><input type="text"/><br/>
<span>性别:</span><input type="text"/><br/>
<span>生日:</span><input type="text"/><br/>
<span>民族:</span><input type="text"/><br/>
<span>班级:</span><input type="text"/><br/>
<input type="submit" value="添加"/>
</body>
</html>
3、<添加>按钮代码 提交按钮所在的form表单
action:提交到的服务端
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>"%>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width"/>
<title>Insert</title>
</head>
<body>
<form action="/Home/Insert1" method="post">
<h1>添加新用户</h1>
<span>用户名:</span><input type="text" name="username"/><br/>
<span>密码:</span><input type="text" name="password" /><br/>
<span>确认密码:</span><input type="text" name="password1"/><br/>
<span>昵称:</span><input type="text" name="nickname"/><br/>
<span>性别:</span><input type="text" name="sex"/><br/>
<span>生日:</span><input type="text" name="birthday"/><br/>
<span>民族:</span><input type="text" name="nation"/><br/>
<span>班级:</span><input type="text" name="class" /><br/>
<input type="submit" value="添加"/>
</form>
</body>
</html>
控制器下动作代码:
//向数据库添加数据并跳转页面
public ActionResult Insert1(string username,string password,string nickname,string sex,string birthday,string nation,string @class)
{
Users u=new Users();
u.username=username;
u.password=password;
u.nickname=nickname;
u.sex=Convert.ToBoolean(sex);
u.birthday=Convert.ToDateTime(birthday);
u.nation=nation;
u.@class=@class;
using (Data0928DataContext con=new Data0928DataContext())
{
con.Users.InsertOnSubmit(u);
con.SubmitChanges();
}
return RedirectToAction("Main","Home");
}
三、删除数据(地址栏传值)
1、添加“删除”操作列
<tr>
<td><%=u.ids %></td>
<td><%=u.username %></td>
<td><%=u.password %></td>
<td><%=u.nickname %></td>
<td><%=Convert.ToBoolean(u.sex)?"男":"女" %></td>
<td><%=Convert.ToDateTime(u.birthday).ToString("yyyy年MM月dd日")%></td>
<td><%=u.Nation1.nationname %></td>
<td><%=u.Class1.classname %></td>
<td><a href="/Home/Delete?Duname=<%=u.username %>">删除</a></td>
</tr>
2、控制器动作代码
//删除数据并重新定向
public ActionResult Delete()
{
string UName=Request["Duname"];
using (Data0928DataContext con=new Data0928DataContext())
{
Users u=con.Users.Where(r=>r.username==UName).FirstOrDefault();
if(u !=null)
{
con.Users.DeleteOnSubmit(u);
con.SubmitChanges();
}
}
return RedirectToAction("Main","Home");
}
3、弹出提示框
<td><a href="/Home/Delete?Dunname=<%=u.username %>" onclick="return confirm('确定要删除吗?')">删除</a></td>
四、修改数据(路由传值+ViewBag传值)
1、路由传值-从view界面传一个值到控制器下的动作中,值为string类型
<a href="/Home/Update/<%=u.username %>修改</a>
2、ViewBag传值--从动作将数据传递到View层中进行绑定,值为任意类型
//查询到数据,用ViewBag带到界面进行绑定
public ActionResult Update(string id)
{
Users u=null;
using (Data0928DataContext con=new Data0928DataContext())
{
u=con.Users.Where(r=>r.username==id).FirstOrDefault();
}
ViewBag.UUser=u;
return View();
}
3、View层绑定数据 记得引用命名空间
<body>
<%
Users u=ViewBag.UUser as Users;
%>
<form action="/Home/Update1" method="post">
<h1>添加新用户</h1>
<span>用户名:</span><input type="text" name="username" readonly="readonly" value="<%=u.username %>"/><br/>
<span>密码:</span><input type="text" name="password" value="<%=u.password %>"/><br/>
<span>昵称:</span><input type="text" name="nickname" value="<%=u.nickname %>"/><br/>
<span>性别:</span><input type="text" name="sex" value="<%=u.sex %>"/><br/>
<span>生日:</span><input type="text" name="birthday" value="<%=u.birthday %>" /><br/>
<span>民族:</span><input type="text" name="nation" value="<%=u.nation %>"/><br/>
<span>班级:</span><input type="text" name="class" value="<%=u.@class %>"/><br/>
<input type="submit" value="确认修改"/>
</form>
</body>
4、<确认修改>按钮代码
//form表单提交数据,自动组对象,需要name属性值与字段名完全一致
public ActionResult Update1(Users u)
{
Users uu=u;
using (Data0928DataContext con=new Data0928DataContext())
{
Users uuu=con.Users.Where(r=>r.username==u.username).FirstOrDefault();
uuu.password=uu.password;
uuu.nickname=uu.nickname;
uuu.sex=uu.sex;
uuu.birthday=uu.birthday;
uuu.nation=uu.nation;
uuu.@class=uu.@class;
con.SubmitChanges();
}
return RedirectToAction("Main","Home");
}
五、登录页面及状态保持
1.新建控制器UserLoginController,并添加登录页面视图,系统是在Views文件夹中自动生成一个新文件夹
2、登录界面代码
<body>
<form actio="/UserLogin/Login1" method="post">
<h2>用户登录</h2>
用户名:<input type="text" name="UserName"/><br/>
密 码:<input type="password" name="Pwd"/><br/>
<input type="submit" value="登录"/>
</form>
</body>
登录按钮执行控制器动作
//登录
public ActionResult Login1(string UserName,string Pwd)
{
Users u=null;
using (Data0928DataContext con=new Data0928DataContext())
{
u=con.Users.Where(r=>r.username==UserName&&r.password==Pwd).FirstOrDefault();
}
if(u==null)
{
return RedirectToAction("Login","UserLogin");
}
return RedirectToAction("Main","Home");
}
3、状态保持-cookies
Response.Coolies["UserName"].Value=UserName;
return RedirectToAction("Main","Home");
在主页面进行判断是否Cookies 为空,若为空跳回登录页面,若不为空则展示主页面内容
public ActionResult Main()
{
if(Request["UserName"]==null)
{
return RedirectToAction("Login","UserLogin");
}
return View();
}
4、退出登录
//<退出>按钮
public ActionResult Exit()
{
Response.Cookies["UserName"].Expires=DateTime.Now.AddDays(-10);
return RedirectToAction("Login","UserLogin");
}
5、登录失败提示
控制器下登录动作添加一个session 赋值
//登录
public ActionResult Login1(string UserName,string Pwd)
{
Users u=null;
using (Data0928DataContext con=new Data0928DataContext())
{
u=con.Users.Where(r=>r.username==UserName&&r.password==Pwd).FirstOrDefault();
}
if(u==null)
{
Session["LoginIsOk"]="0";
return RedirectToAction("Login","UserLogin");
}
Response.Cookies["UserName"].Value=UserName;
return RedirectToAction("Main","Home");
}
view页面进行判断
<%
if(Session["LoginIsOk"] !=null)
{
%>
<span style="color:red;">用户名或密码错误!</span>
<%
Session["LoginIsOk"]=null;
}
%>
MVC基础操作的更多相关文章
- c#-MVC基础操作-数据的展示及增删改、登录页面及状态保持
一.数据展示 1.View代码: <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynam ...
- Spring MVC基础
1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是一样的方法.框架只能在技术层 ...
- ASP.NET MVC基础学习
ASP.NET MVC基础学习 传统的MVC概念 模型:组类,描述了要处理的数据以及修改和操作数据的业务规则 视图:定义应用程序用户界面的显示方式 控制器:一组类,用来处理来自用户,整个应用程序流以及 ...
- Java Web系列:Spring MVC基础
1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是一样的方法.框架只能在技术层 ...
- 重温MVC基础入门
重温MVC基础入门 简介 本文主要是作者回顾MVC基础的文章,整合个人认为基础且重点的信息,通过简单实践进行复习. 相关代码地址:https://github.com/OtherRuan/Revi ...
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
ASP.NET MVC 学习笔记-2.Razor语法 1. 表达式 表达式必须跟在“@”符号之后, 2. 代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...
- python基础操作以及hdfs操作
目录 前言 基础操作 hdfs操作 总结 一.前言 作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- 【Learning Python】【第二章】Python基础类型和基础操作
基础类型: 整型: py 3.0解决了整数溢出的问题,意味着整型不必考虑32位,64位,有无符号等问题,你写一个1亿亿亿,就是1亿亿亿,不会溢出 a = 10 ** 240 print(a) 执行以上 ...
随机推荐
- 13.OpenStack常用命令
常用的命令 使用trove create创建数据库 trove create name --size= --databases DBNAME \ --users USER:PASSWORD --dat ...
- Selenium2+python自动化7-xpath定位【转载】
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...
- 【转载】Photoshop-制作图片圆角2种方法
学习网址:http://www.23ps.com/photoshop/cjjc/300002034.htm 方案一: 使用选区和蒙版相结合,用图章制作圆角选区,删除多余部分 效果: 实现步骤: 一.如 ...
- Vue.js之父子组件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- ORA-01157:无法标识/锁定数据文件,ORA-01110:表空间丢失错误
https://blog.csdn.net/u014432433/article/details/51051854
- HDU 1846 Brave Game【巴什博弈裸题】
Brave Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- etcd:从应用场景到实现原理的全方位解读
随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐 渐为开发人员所关注.在云计算时代,如何让服务快速透明地接入到 ...
- IT开发者对Mac钟爱
由于Mac的操作系统OSX相比Windows win7/8/10来说,比較适合开发者使用.个人的体会例如以下: 首先.OSX的多窗体多应用程序切换功能非常强大,对开发者来说非常实用.开发者一般都须要开 ...
- nginx静态资源配置
解决EE工程中静态文件显示问题 在工程中本地测试没有问题,发现使用nginx配置了路径的页面,会获取不到相应页面的静态文件问题 静态文件的路径类似为: http://localhost:8080/sa ...
- 2017.4.18 慕课网-spring事务管理总结
1.课程目标 事务回顾 spring中的事务管理的api spring中编程式事务管理 spring中声明式事务管理 2.事务回顾 2.1 事务的概念 事务是指逻辑上的一组操作,要么全成功,要么全失败 ...