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) 执行以上 ...
随机推荐
- centos 搭建ntp
str=$(printf "%-25s" "*") echo -e "${str// /*}" echo -e "*\t\t\t* ...
- nvm: node版本管理工具
安装nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash node 版本切 ...
- css容器
.s1{ background-color:pink; font-weight:bold; font-size=16px; color:black; } #id1{ background-color: ...
- 大牛教你如何循序渐进,有效的学习JavaScript?
首先要说明的是,咱现在不是高手,最多还是一个半桶水,算是入了JS的门.谈不上经验,都是一些教训. 这个时候有人要说,“靠,你丫半桶水,凭啥教我们”.您先别急着骂,先听我说! 你叫一个大学生去教小学数学 ...
- (3)C#基本语法
1.C#标识符 标识符是用来识别类.变量.函数或任何其它用户定义的项目. 在 C# 中,类的命名必须遵循如下基本规则: 标识符必须以字母开头,后面可以跟一系列的字母.数字.下划线.标识符中的第一个字符 ...
- 树的直径【p3629】[APIO2010]巡逻
Description 在一个地区中有 n 个村庄,编号为 1, 2, ..., n.有 n – 1 条道路连接着这些村 庄,每条道路刚好连接两个村庄,从任何一个村庄,都可以通过这些道路到达其 他任一 ...
- 模拟【p2239】 螺旋矩阵
顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述--->p2239 螺旋矩阵 看到题,很明显,如果直接模拟的话,复杂度为\(O(n^2)\)过不去.(这个复杂度应该不正确,我不会分 ...
- linux命令和工具
环境搭建 lnmp环境搭建 命令 uname -a 查看linux版本 lsof -i:80 查看端口被那个程序占用 lsof -p pid号 查看引用的文件 netstat -apn|grep 80 ...
- cf 546C Soldier and Cards
题目链接:C. Soldier and Cards Two bored soldiers are playing card war. Their card deck consists of exact ...
- 1.NFC入门
1.什么是NFC? 近距离无线通信技术(Near Field Communication,NFC).NFC提供了一种简单的.非触控式的解决方案,可以让消费者简单直观地交换信息.访问内容与服务. 2.运 ...