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) 执行以上 ...
随机推荐
- js常用函数总结
字符串函数 indexOf 返回字符串中一个子串第一处出现的索引(从左到右搜索).如果没有匹配项,返回 -1 . var index1 = a.indexOf("l"); //in ...
- Linux查看进程堆栈信息命令
jps -lvm #查看进程IDjstack -l <进程ID> # 查看进程堆栈信息
- vue.js基本使用
#原创,转载请留言联系 什么是vue.js Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架. Vue 只关注视图层, 采用自底向上增量开发的设计. Vue 的目 ...
- hdu 5145(莫队算法+逆元)
NPY and girls Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- Jekyll搭建个人博客
网上也有HEXO 搭建的博客,有人说使用 HEXO 在多台电脑上发布博客,操作起来并不是那么方便,所以使用Jekyll 来搭建. Jekyll配置 1,安装ruby环境 Windows系统使用Ruby ...
- 在16aspx.com上下了一个.net程序,怎么修改它的默认登录名和密码?
正常应该有个login.aspx文件,找到登入按钮事件,查看验证用户名密码事件,这个验证就有去搜索用户表,然后在这个用户表修改用户名密码就行了.不排除其他表有用用户名关联
- 转 linux任务调度之crontab命令
crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. 在 ...
- 服务的注册与发现Eureka(二)
1.服务治理概念 在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用.负载均衡.容错等,实现服务发现与注册. 2.服务的注册与 ...
- 前端中 width 的获取
这篇文章其实是在了解 viewport 的过程中发现这些概念容易混淆做了个小小的总结.viewport的首要关键是宽度的获取,宽度的计算有下面几个属性和方法: clientWidth offsetWi ...
- luogu P1075 质因数分解
题目描述 已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数. 输入输出格式 输入格式: 输入只有一行,包含一个正整数n. 输出格式: 输出只有一行,包含一个正整数p,即较大的那个质数. ...