03-23 MVC框架(以查询、删除为例)
1、MVC的定义:
MVC(Model-View-Controller,模型-视图-控制器)是用于将应用程序粉好吃呢过如下3个主要方面的体系结构模式:
模型(Model):一组类和业务规则,类用于描述正在处理的数据,业务规则用于说明如何修改和操纵这些数据。
视图(View):应用程序的用户界面(UI)。
控制器(Controller):一组类,用于处理来自用户,整个应用程序流以及特定应用程序逻辑的通信。运行时,默认运行HomeControllers.
该模式常用于Web编程。
2、约定胜于配置
本质是指:当我们知道如何创建应用程序,把该经验应用到架构中,这样就不用在配置所有的内容了。
查看是应用程序运行的如下3个核心目录,我们可以看到这个思想在ASP.NETMVC中的应用情况:
(1)Controllers控制器:
(2)Models
(3)Views
3、思路:
首先,客户面对的是Control层
每个控制器对应一个文件夹,每个视图对应一个页面
控制器调用模板,再返回到控制器
4、各个写法的区别:
<%# Eval("数据绑定的一列数据") %>
<%=动态数据(一条数据) %>
<% 输入某一段代码%>
不需要再web.config文件中设置这些文件夹的名称——只需要按照约定将它们放在期望的位置即可。
第一步:新建——项目:选择“框架环境4.5版本”

项目建立完成后,就会发现项目资源管理器中出现:

第二步:Controllers右键,添加“控制器类”,也可以使用快捷键(Ctrl+M,Ctrl+C),

控制器名称可以更改,但Controller不可以更改(约定胜于配置),选择空模板(建议使用)。

第三步:在Models层添加类(写增删改查方法)和Linq to SQL类

第四步:Models层(数据访问层):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace MvcApplication1.Models
{
public partial class bumen
{
private DataClasses1DataContext _Context = new DataClasses1DataContext();
//查询数据库表
public List<bumen> Select()
{
// List<bumen> list = new List<bumen>();
var query = _Context.bumen.ToList();
return query.ToList();
}
//按主键查询
public bumen Select(int id)
{
// List<bumen> list = new List<bumen>();
var query = _Context.bumen.Where(p=>p.code==id);
if (query.Count() > )
{
return query.First();
}
else
{
return null;
}
}
//按照主键删除
public void Delete(int id)
{
var query = _Context.bumen.Where(p=>p.code==id);
if(query.Count()>)
{
bumen bm = query.First();
_Context.bumen.DeleteOnSubmit(bm);
_Context.SubmitChanges();
}
}
}
}
using MvcApplication1.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcApplication1.Controllers
{
//MVC默认执行Home控制器
public class HomeController : Controller
{
//控制器默认先走Home,而不是其他控制器
//约定优于配置
public ActionResult Index()
{
//把数据从Model层找出
//需要引用Models层的命名空间
List<bumen> list = new bumen().Select();
//再把数据传到view
ViewData["list"] = list;
//返回view给客户
return View();
}
public ActionResult Delete(int id)
{
new bumen().Delete(id);
return RedirectToAction("Index");
}
}
}
第六步:Views层(界面模板):
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@import Namespace="MvcApplication1.Models" %>>//引用Models层的命名空间
<!DOCTYPE html> <html>
<head runat="server">
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<style type="text/css">//设置表头和行数据的格式
.head {
background-color:navy;
color:white;
font-weight:bold;
text-align:center;
}
.item {
background-color:#e0e0e0;
color:black;
text-align:center;
} </style>
</head>
<body>
<div>
<table width="100%" border="" cellpadding="" cellspacing="" bgcolor="black">
<%-- 表头 --%>
<tr class="head">
<td>姓名</td>
<td>职能</td>
<td>CEO</td>
<td>操作</td>
</tr>
<%-- 行数据 --%>
<%
List<bumen> list = ViewData["list"] as List<bumen>;
foreach(bumen data in list) { %>
<tr class="head">
<td><%=data.name %></td>
<td><%=data.zhineng %></td>
<td><%=data.ceo %></td>
<td><a href="Home/Delete?id=<%=data.code %>">删除</a></td>
</tr>
<%} %>
</table>
</div>
</body>
</html>
查询显示:

删除操作(一行):【以管理部--负责运营管理和调控--红烧肉】为例:

注意:Controllers默认执行HomeController,如果当前执行的不是HomeController,而是直接DemoController,那么浏览器会直接弹出:

这时,需要将Demo文件夹及Demo下的Index(Action)写上,然后跳转页面即可。

03-23 MVC框架(以查询、删除为例)的更多相关文章
- 用mvc框架查询数据库数据
介绍下mvc框架,mvc框架一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. 首先我们 ...
- Java MVC框架性能比较
Java MVC框架性能比较 - by zvane 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框 ...
- dya49:django:wsgrief&模板渲染Jinjia2&django的MTV/MVC框架&创建/启动一个django项目
目录 1.自定义web框架wsgiref版 2.自定义web框架wsgiref版-优化版 3.模板渲染JinJa2 4.MTV和MVC框架 5.django:下载安装&创建启动 自定义web框 ...
- 编写自己的PHP MVC框架笔记
1.MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). ...
- 产品前端重构(TypeScript、MVC框架设计)
最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容. 公司期望把某一管理类信息系统从项目代码中抽取.重构为一个可复用的产品.该系统的前端是基于 ExtJs 5 进行构造的, ...
- JavaScript客户端MVC 框架综述
简介 15 年前,许多人都使用 Perl 和 ColdFusion 之类的工具构建网站.我们经常编写可以在页面顶部查询数据库的脚本,对数据应用必要的转换,以及在同一个脚本底部显示数据.这类架构适合于向 ...
- PHP: 手把手编写自己的 MVC 框架实例教程
1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller ...
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
- MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)
前言: 刚刚学完了MVC,根据自己的感悟和理解写了一个小项目. 完全按照MVC模式,后面有一个MVC的理解示意图. 用MVC模式重新完成了联系人的管理系统: 用户需求: 多用户系统,提供用户注册.登录 ...
- BrnShop开源网上商城第二讲:ASP.NET MVC框架
在团队设计BrnShop的web项目之初,我们碰到了两个问题,第一个是数据的复用和传递,第二个是大mvc框架和小mvc框架的选择.下面我依次来说明下. 首先是数据的复用和传递:对于BrnShop的每一 ...
随机推荐
- >=< 在set和dict中的不同
两个dict比较的算法是,长度>键>值,由于dict无序,所以比较的时候会自动将键对齐比较,我们不用担心这个. >>> d1 = dict(x=1, y=2) >& ...
- Ubuntu中apt-get安装或更新软件错误的解决办法
$su #apt-get clean #cd /var/lib/apt #mv lists lists.back #mkdir -p lists/partial #apt-get clean #apt ...
- ZOJ3640Help Me Escape(师傅逃亡系列•一)(数学期望||概率DP)
Background If thou doest well, shalt thou not be accepted? and if thou doest not well, sin lieth at ...
- java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
之前做过一个测试,详情见这篇文章<多线程 +1操作的几种实现方式,及效率对比>,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 1. 单线程下synchronized效率最高 ...
- CH1802 表达式计算4
题意 给出一个表达式,其中运算符仅包含+,-,*,/,^(加 减 乘 整除 乘方)要求求出表达式的最终值 数据可能会出现括号情况,还有可能出现多余括号情况 数据保证不会出现>=2^31的答案 数 ...
- sqlopsstudio 微软开源跨平台sql server 连接工具
sqlopsstudio 微软开源的sql server 连接工具,跨平台,基于vscode 分之代码. 项目地址: https://github.com/Microsoft/sqlopsstudi ...
- js 正则表达式符号含义
\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功 ...
- Oracle数据库安装图文操作步骤1
Oracle数据库安装图文操作步骤 一.Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可. 路径名称中,最好不要出现中文,也不要出现空格等不规则字符. 官 ...
- [转]使用tcpdump抓取HTTP包
tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 0x4745 为"GET"前两个字母"G ...
- c# winform委托的使用
可参考http://bbs.csdn.net/topics/390377875中使用new Action<>的使用方式,替代delegate的申明. public delegate voi ...