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();
}
}
}
}
第五步:HomeControllers层(用户面对的是控制层):

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框架(以查询、删除为例)的更多相关文章

  1. 用mvc框架查询数据库数据

    介绍下mvc框架,mvc框架一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. 首先我们 ...

  2. Java MVC框架性能比较

    Java MVC框架性能比较 - by zvane 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框 ...

  3. dya49:django:wsgrief&模板渲染Jinjia2&django的MTV/MVC框架&创建/启动一个django项目

    目录 1.自定义web框架wsgiref版 2.自定义web框架wsgiref版-优化版 3.模板渲染JinJa2 4.MTV和MVC框架 5.django:下载安装&创建启动 自定义web框 ...

  4. 编写自己的PHP MVC框架笔记

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

  5. 产品前端重构(TypeScript、MVC框架设计)

    最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容. 公司期望把某一管理类信息系统从项目代码中抽取.重构为一个可复用的产品.该系统的前端是基于 ExtJs 5 进行构造的, ...

  6. JavaScript客户端MVC 框架综述

    简介 15 年前,许多人都使用 Perl 和 ColdFusion 之类的工具构建网站.我们经常编写可以在页面顶部查询数据库的脚本,对数据应用必要的转换,以及在同一个脚本底部显示数据.这类架构适合于向 ...

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

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

  8. 通过Ruby On Rails 框架来更好的理解MVC框架

    通过Ruby On Rails 框架来更好的理解MVC框架   1.背景    因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...

  9. MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)

    前言: 刚刚学完了MVC,根据自己的感悟和理解写了一个小项目. 完全按照MVC模式,后面有一个MVC的理解示意图. 用MVC模式重新完成了联系人的管理系统: 用户需求: 多用户系统,提供用户注册.登录 ...

  10. BrnShop开源网上商城第二讲:ASP.NET MVC框架

    在团队设计BrnShop的web项目之初,我们碰到了两个问题,第一个是数据的复用和传递,第二个是大mvc框架和小mvc框架的选择.下面我依次来说明下. 首先是数据的复用和传递:对于BrnShop的每一 ...

随机推荐

  1. I.MX6 修改调试串口号(ttymx0 -> ttymxc2)

    I.MX6 修改调试串口号(ttymx0 -> ttymxc2) 一.参考文章: uboot修改默认调试串口ttymxc0 ->ttymxc4(imx53) http://www.xueb ...

  2. ASP.NET WebForm 与 IE10、IE11

    最近维护公司一个烂项目.NET4.0 Asp.Net WebForm(在MVC5泛滥的今天还有用WebForm的(⊙o⊙)…) IE10.IE11下aspx中大表单提交不上去,报_DoPostBack ...

  3. maven报错【Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of】

    [自己的操作] (1)windows -> Preferences -> maven 的settings.xml文件中.m2的位置已经失效,更改正确后尝试 (2)pom.xml还有下面错误 ...

  4. IntelliJ-IDEA中mybatis三剑客

    一.mybatis-generator的使用 作用:根据数据库自动生成pojo.dao和xml文件. 1.引入mybatis-generator pom.xml中引入配置:

  5. 当我们使用 MVVM 模式时,我们究竟在每一层里做些什么?

    这篇文章不会说 MVVM 是什么,因为讲这个的文章太多了:也不会说 MVVM 的好处,因为这样的文章也是一搜一大把.我只是想说说我们究竟应该如何理解 M-V-VM,当我们真正开始写代码时,应该在里面的 ...

  6. UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接

    古老的 Win32 应用启动其他程序太过方便,以至于一部分开发者都已经不记得 Windows 能通过关联协议的方式通过统一资源定位符(URI)来启动应用程序了. 转到 UWP 后,使用 URI 启动应 ...

  7. sublime python运行插件

    Tools->New plugin 粘贴下面代码,在插件目录新建文件夹,保存 import sublime, sublime_plugin import os class ExampleComm ...

  8. 安装WampServer关闭mysql服务后打不开了

    WampServer自带了mysql精简班的数据库了 WampServer自带 的mysql和你独立安装的mysql端口号冲突了 mysql默认的端口号是3306 建议你修改WampServer的数据 ...

  9. Numpy, Pandas, Matplotlib, Scipy 初步

    Numpy: 计算基础,  以类似于matlab的矩阵计算为基础.  底层以C实现, 速度快. Pandas: 以numpy为基础, 扩充了很多统计工具. 重点是数据统计分析. Matplotlib: ...

  10. drone 学习一 几个核心组件

    1. clone 这个是内置的,实际上就行进行代码clone的 参考配置,同时我们可以使用自定义的插件 clone: + git: + image: plugins/git pipeline: bui ...