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) 执行以上 ...
随机推荐
- springBoot【01】
/* 使用spring官网的 http://start.spring.io/ 来建立项目包 生成入口文件,入口文件中对类注释@SpringBootApplication,这个注释是唯一的,标明这个类是 ...
- Centos的APK解包打包签名
http://www.v5b7.com/other/apk.html vi /etc/profile PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:/u ...
- AC日记——Mice and Holes codeforces 797f
797F - Mice and Holes 思路: XXYXX: 代码: #include <cmath> #include <cstdio> #include <cst ...
- EntityFramework之一对多关系(三)
上篇介绍了一对一关系,下面介绍下一对多关系代码编写. 1.新建model实体,Product是产品类,Order是订单,一个产品对应多个订单 public class Product { public ...
- BZOJ 4589 Hard Nim(FWT加速DP)
题目链接 Hard Nim 设$f[i][j]$表示前$i$个数结束后异或和为$j$的方案数 那么$f[i][j] = f[i-1][j$ $\hat{}$ $k]$,满足$k$为不大于$m$的质数 ...
- Gym - 101194F(后缀数组)
Mr. Panda and Fantastic Beasts 题意 给出若干个字符串,找到一个最短的字典序最小的字符串且仅是第一个字符串的子串. 分析 对于这种多个字符串.重复的子串问题一般都要连接字 ...
- bzoj 2843: 极地旅行社
Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1077 Solved: 645[Submit][Status][Discuss] Descripti ...
- [CP1804]组合数问题2
题目大意: 给定两个数$n(n\le10^6)$和$k(k\le10^5)$,找到$k$个不同的满足$0\le b\le a\le n$的组合数$\binom a b$,求这$k$个组合数的最大值. ...
- PowerDisginer中NAME与COMMENT转换脚本
Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl ' the current model ' get t ...
- django模板解析 循环列表中 切片和求长度
{% for subrow in subdic.content|slice:":5" %} {% endfor %} {% if "{{subdic.content|le ...