using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Mvc;
using WebApplication1.Models; namespace WebApplication1.Controllers
{
public class LeaveMsgController:Controller
{
//GET:/LeaveMsg/
public ActionResult Index()
{
//Controllers向视图传值
//原理:先存数据然后再在视图你面取出来
string s = "hello!!";
ViewData["aa"] = s; BBSDataContext bbs = new BBSDataContext();
List<student> v = (from m in bbs.student
select m).ToList();
ViewData["list"] = v; return View();
}
//删除
public ActionResult Delete()
{
//RouterData 可以获取路由上的数据
string id = RouteData.Values["id"].ToString();
//可以将一段文字返回给浏览器
//return view() 是把当前这个Action对应的视图返回给浏览器
BBSDataContext dc = new BBSDataContext();
var v = from d in dc.student
where d.stuID == int.Parse(id)
select d;
if (v.Count()>)
{
//删除
try
{
dc.student.DeleteOnSubmit(v.First());
dc.SubmitChanges();
//成功
//TempData临时数据,为下一次请求服务,在下一次请求完毕,数据清除
//本质是session存放数据
TempData["msg"] = "删除成功";
}
catch (Exception)
{
//失败
TempData["msg"] = "删除失败!!!";
} }
else
{
//没有对应的数据
TempData["msg"] = "没有找到对应的数据!!!";
}
return RedirectToAction("Index");
} //新增
public ActionResult Insert()
{
return View(); } //数据验证
public void CheckData(student s)
{
//用户名不能为空
if (s.stuName=="")
{
ModelState.AddModelError("stuName", "用户名不能为空");
}
//性别内容长度不能为空且不能大于2个字符
if (s.stuNo==""&&s.stuNo.Length<)
{
ModelState.AddModelError("stuName", "用户名不能为空或字符数大于2");
}
//正则表达式
//bool b= Regex.IsMatch(s.stuID.ToString(), "^\\{6}$");//C#正则 }
//提交新增操作
public ActionResult InsertOK()
{
//数据验证 BBSDataContext dc = new BBSDataContext();
student s = new student();
s.stuName = Request["stuName"];
s.stuID = int.Parse(Request["stuNo"]);
s.sex = Request["sex"];
s.remark = Request["remark"];
CheckData(s);
if (!ModelState.IsValid)//验证不通过
{
ViewData["stuName"] = s.stuName;
ViewData["stuNo"] = s.stuNo;
ViewData["sex"] = s.sex;
return View("Insert");
}
try
{
dc.student.InsertOnSubmit(s);
dc.SubmitChanges();
TempData["msg"] = "新增成功!!!";
return RedirectToAction("Index");
}
catch (Exception)
{
TempData["msg"] = "新增失败";
return RedirectToAction("Insert");
}
} //编辑跳转
public ActionResult Edit()
{ string id = RouteData.Values["id"].ToString();
ViewData["id"] = id;
//找id对应的数据
BBSDataContext dc = new BBSDataContext();
var v = from d in dc.student
where d.stuID == int.Parse(id)
select d;
if (v.Count()>)
{
var d = v.First();
ViewData["stuName"] = d.stuName;
ViewData["stuNo"] = d.stuNo;
ViewData["sex"] = d.sex;
ViewData["remark"] = d.remark;
return View();
}
else
{
TempData["msg"] = "没有对应的数据";
return View();
}
} //修改
public ActionResult Update()
{
string id = Request["id"];
BBSDataContext dc = new BBSDataContext();
var v = from d in dc.student
where d.stuID == int.Parse(id)
select d;
if (v.Count()>)
{
var m = v.First();
m.stuName = Request["stuName"];
m.stuNo = Request["stuNo"];
m.sex = Request["sex"];
CheckData(m);
if (!ModelState.IsValid)
{
return View("Edit");
}
try
{
dc.SubmitChanges();//提交修改
TempData["msg"] = "修改成功";
return RedirectToAction("Index");
}
catch (Exception)
{ TempData["msg"] = "修改失败!";
return RedirectToAction("Edit",new { id=id});
} }
else
{
//没有此数据
TempData["msg"] = "提交数据之前数据被其他用户已删除!!";
return RedirectToAction("Index");
}
} }
}

控制器中业务逻辑

@{
ViewBag.Title = "Index";
}
@using WebApplication1.Models <h2>学生列表</h2> @ViewData["aa"]
@TempData["msg"]
<table width="100%">
<tr><th>姓名</th><th>学号</th><th>性别</th><th>操作</th></tr>
@{
List<student> list = ViewData["list"] as List<student>; }
@{
foreach (var item in list)
{
<tr>
<td>@item.stuName</td>
<td>@item.stuID</td>
<td>@item.sex</td>
<td>@* 在MVC里提供了2个helper类,htmlHelper,UrlHelper类可以生成html代码和url代码,使用比较方便
<a href='student/delete'/@item.stuID>删除</a>
@Url.Action("delete", "student", new {id=item.stuID})*@
@Html.ActionLink("编辑", "Edit", new {id=item.stuID})|
@Html.ActionLink("删除", "Delete", new { id = item.stuID })
</td> </tr> }
}
</table>
@Html.ActionLink("新增","Insert")

Index页面

@{
ViewBag.Title = "Insert";
} <h2>新增页面</h2>
@TempData["msg"]
<p>
@Html.ValidationSummary();
</p>
@{
using (Html.BeginForm("InsertOK","LeaveMsg", FormMethod.Post))
{//创建的对象会在using语句块结束时关闭对象 <span>用户名</span> @Html.TextBox("stuName")<br />
<span>学号</span> @Html.TextBox("stuNo")<br />
<span>性别</span> @Html.TextBox("sex")<br />
<span>评论</span> @Html.TextArea("remark",null,5,30,null)<br />
<input type="submit" value="新增" />
@Html.ActionLink("返回列表", "Index"); } }

新增页面

@{
ViewBag.Title = "Edit";
} <h2>编辑信息</h2>
@TempData["msg"]
<p>
@Html.ValidationSummary();
</p>
@{
using (Html.BeginForm("Update", "LeaveMsg", FormMethod.Post))
{
@Html.Hidden("id")
<span>用户名</span> @Html.TextBox("stuName")<br />
<span>学号</span> @Html.TextBox("stuNo")<br />
<span>性别</span> @Html.TextBox("sex")<br />
<span>评论</span> @Html.TextArea("remark", null, 5, 30, null)<br />
<input type="submit" value="修改" />
@Html.ActionLink("返回列表", "Index");
} }

编辑页面

MVC简单实例的更多相关文章

  1. Maven+Eclipse+Spring MVC简单实例

    1. ToolsVersion and Preparations: Eclipse: 3.5 (eclipse-jee-galileo-win32) Maven: 2.0.11 Spring MVC ...

  2. PHP: 手把手编写自己的 MVC 框架实例教程

    1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller ...

  3. 简单实例一步一步帮你搞清楚MVC3中的路由以及区域

    我们都知道MVC 3 程序的所有请求都是先经过路由解析然后分配到特定的Controller 以及 Action 中的,为什么这些知识讲完了Controller Action Model 后再讲呢?这个 ...

  4. ASP.NET MVC 简单介绍①

    ASP.NET  MVC 简单介绍① 只做了重要描述,内容出自菜鸟教程网站内容. 目录 1布局 2HTML 帮助器 3.Razor 语法 4.添加样式 5.Layout 6. Controllers ...

  5. SpringMVC笔记——SSM框架搭建简单实例

    落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...

  6. SpringMVC简单实例(看起来有用)

    SpringMVC简单实例(看起来有用) 参考: SpringMVC 基础教程 简单入门实例 - CSDN博客http://blog.csdn.net/swingpyzf/article/detail ...

  7. ThinkPHP5.0最最最最最简单实例

    ThinkPHP5.0最最最最最简单实例 一.效果图 二.操作步骤 1.用mysql数据库建立数据库 2.按照ThinkPHP官网的指示装好ThinkPHP5.0 tp5里面的目录结构如下: 3.配置 ...

  8. Spring boot项目搭建及简单实例

    Spring boot项目搭建 Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for ...

  9. Hibernate(二)__简单实例入门

    首先我们进一步理解什么是对象关系映射模型? 它将对数据库中数据的处理转化为对对象的处理.如下图所示: 入门简单实例: hiberante 可以用在 j2se 项目,也可以用在 j2ee (web项目中 ...

随机推荐

  1. Maven入门系列(二)--设置中央仓库的方法

    原文地址:http://www.codeweblog.com/maven入门系列-二-设置中央仓库的方法/ Maven仓库放在我的文档里好吗?当然不好,重装一次电脑,意味着一切jar都要重新下载和发布 ...

  2. Android课程---视图组件总结

  3. 【iCore3 双核心板】例程十九:USBD_MSC实验——虚拟U盘

    实验指导书及代码包下载: http://pan.baidu.com/s/1i4eNbQd iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  4. P4行为模型BMV2依赖关系安装:thrift nanomsg nnpy安装

    由于安装p4factory的步骤需要OF的支持,我需要下载p4的行为模型BMV2: thrift是支持BMV2的软件框架:nanomsg是一个实现了几种"可扩展协议"的高性能通信库 ...

  5. Cocos2dx 多点触控

    1 最容易忽略的东西,对于ios平台,须得设置glView的属性: [__glView setMultipleTouchEnabled:YES]; 2 如果调用CCLayer的方法setTouchEn ...

  6. PHP->利用GD库新建图像

    1.确认php中GD库是否开启 在PHP配置文件php.ini中查找extension=php_gd2.dll,去掉前边的(分号) ';' 即可,一般php是默认开启的 2.绘画步骤 创建一个画布(画 ...

  7. javaWeb中servlet开发(5)——WEB开发模式:Mode I与Mode II

    1.servlet开发 2.model I模式 客户端通过访问JSP,调用里面的javabean,而通过javabean调用处理数据库的操作,javabean中有专门处理数据库的操作,数据库主要以DA ...

  8. LINUX VI 常用命令

    vi 打开或新建 vi filename 打开或新建文件 并将光标置于第一行首 光标 )  光标移至句尾 (  光标移至句首 屏幕翻滚类命令 Ctrl+u 向文件首翻半屏 Ctrl+d 向文件尾翻半屏 ...

  9. ansible使用笔记

    ansible使用笔记 介绍 ansible 是一个模型驱动的配置管理器,支持多节点发布.远程任务执行.默认使用 SSH 进行远程连接.无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展.an ...

  10. jQuery源代码学习之六——jQuery数据缓存Data

    一.jQuery数据缓存基本原理 jQuery数据缓存就两个全局Data对象,data_user以及data_priv; 这两个对象分别用于缓存用户自定义数据和内部数据: 以data_user为例,所 ...