MVC学习笔记1 MVC概述

MVC概述

MVC三种角色

– Model   用于存储数据的组件(与领域模型概念不同)。

– View    根据Model数据进行内容展示的组件

– Controller:接受并处理用户指令(操作Model),选择一个View并输出内容。

MVC概述:两种分离

• View和数据(Model)分离

能够为相同的Model开发不同的View进行展示

分离可视与不可视得组件,能够对Model进行独立测试(只有ViewModel的单向引用)

• View和表现逻辑(Controller)分离

分离逻辑与具体展示,能够对逻辑进行独立测试(只有ControllerView的单向引用)

MVC与三层架构

• MVC与三层架构类似?

– View – UI Layer

– Controller – BL Layer

– Model – DA Layer

其实不然

– MVC表现模式Presentation Pattern

三层架构是架构模式Architecture Pattern

    没有太多可比性

MVC之间无依赖关系,MVC之间是协作关系,没有层次的关系。MVC不是分层。

WebForms vs ASP.NET MVC

• WebForms的优点

Web开发抽象成一个组件模型

使用方便,入门容易

使控件产业大大加强

• WebForms的缺点

封装太强——这还是Web开发吗?

入门容易,用好难

不易进行单元测试,前后台不易配合

不过WebForms也在成长

 

ASP.NET MVC的优势

直接,Web开发就是Web开发

易于对界面逻辑进行单元测试

– Design for testability

易于后台与前台开发人员的配合

ASP.NET MVC是在ASP.NET平台下开发Web应用程序的另一选择,并非为了取代WebForms

 

ASP.NET MVC的特点

一切都是可替换的

ViewEngine

Action Filter

一切都是可测试的

公开源代码

可以修改

–不可重新发布

 

 

 

ContractedBlock.gifExpandedBlockStart.gifCode
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
ExpandedBlockStart.gifContractedBlock.gif
{
    
//这是一个规则,表示如果抛出异常将由规定页面处理
    [HandleError]

ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**////
    
/// HomeController对应Views中的Home文件夹
    
/// 

    public class HomeController : Controller
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
public ActionResult Index()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            ViewData[
"Message"= "Welcome to ASP.NET MVC!";


            
// .return View();表示要展现一个aspx页面。
            
//默认情况下显示同名aspx页面:Views/Home/Index.aspx
            
//当然你也可以自己指定,例如return View("index1")
            
//就是显示Views/Home/Index1.aspx
            return View();
        }


        
public ActionResult About()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
return View();
        }

    }

}

return View();表示要展现一个aspx 默认情况下显示同名aspx页面:Views/Home/Index.aspx
当然你也可以自己指定,例如return  View("index1")就是显示Views/Home/Index1.aspx

转载于:https://www.cnblogs.com/dupeng0811/archive/2009/06/04/1495958.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计一个医院

源于个人网站:http://programmer.2008red.com/programmer/article_647_777_1.shtml 收到一封来自Exoweb的邮件,让去面试(败的很惨,呵呵。过了好长时间了,都忘记这事了,结果这公司来了邮件,说不能…

powerbi的功能介绍_Power BI:1分钟快速生成可视化报表

1.什么是Power BI ?Power BI 是微软推出的可视化工具,先来看看微软官方是怎么介绍的:使用用于自助服务和企业商业智能 (BI) 的统一、可扩展平台(该平台易于使用,可帮助获取更深入的数据见解),连…

易语言 java支持_开源Java客户端可以连接易语言服务器

我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后,都要先跟当前的客户端通信完之后才能再处理下一个连接请求。 这在并发比较多的情况下会严重影响程序的性能,为此,我们可以把它改为如下这种异步…

Javascript--File对象

描述: 提供对文件属性的访问.属性: 属性描述Attributes设置或返回文件或文件夹的属性DateCreated返回指定文件或文件夹的创建时间DateLastAccessed返回最近访问文件或文件夹的创建时间DateLastModified返回最后修改指定文件和文件夹的日期和日期Drive返回指定文件或文件夹所在的…

idea怎么调试jsp页面_解决idea的c标签错误

Hello,World.土土来啦!最近做jq项目,遇到各种各样的问题。首先就是c标签的错误。对,没错,就是这一串因为土土上学期学的是jsp,所以是在myeclipse做的,这学期就想在idea做后端。然后复制粘贴之前的项目的时候&#xff0…

[SlickEdit] SlickEdit支持目录别名FTP控件更新

有阵没写代码了,SlickEdit升级到2009还没怎么用过,Option面板改动得更像Eclipse了,反正IDE工具也不知道到底谁抄袭谁,只是Symbol Coloring设置太唬人了吧,,默认的symbol coloring总是出现字符偏移&#xff…

有一台服务器远程失败其他电脑可以_使用闲置电视盒子打造家庭网盘和远程下载器和小型服务器(二)...

使用闲置电视盒子打造家庭网盘和远程下载器系列(二)本系列分为五章一、综述二、电视盒子的root三、app的安装和服务器环境的搭建四、网盘系统的部署和使用五、远程下载系统搭建和实现昨天写了第一章,我这是首次写东西,没想到能得到这么多朋友关注&#x…

基于C#.NET的--Windows进程管理工具

基于.NET(C#)编写。 实现了进程的树状显示父子关系,其中应用到了WMI编程,以及P-invoke. 下载地址: 点击右键另存为 地址如上,需要安装.NET环境,地址:http://www.microsoft.com/downloads/details.aspx?displaylangzh-…

前端的请求最大线程数是多少啊_面试官:创建多少个线程合适,我该怎么说?...

转载:https://mp.weixin.qq.com/s/j5d4Jtxo0RgJWgpnG9HxlQ为什么要使用多线程?防止并发编程出错最好的办法就是不写并发程序既然多线程编程容易出错,为什么它还经久不衰呢?A:那还用说,肯定在某些方面有特长…

百度地图infowindow的close事件_百度地图蒙圈:车主要加油误导母婴店 跑偏理由令人啼笑皆非...

常在江湖飘,哪有不挨刀。经常驾车出门在外的您,有过被导航坑的经历么?其实在早些年手机导航刚刚兴起的时候,这类现象确实比较常见,但是到了如今大数据的时代,手机导航数据更新比较及时,问题已经…

商业模式新生代_业务分析基础 - 商业模式新生代01篇

商业模式画布商业模式新生代由亚历山大奥斯特瓦德(Alexander Osterwalder)和伊夫皮尼厄(Yves Pigneur)编写,发表于2016年。该书提出了商业模式画布模型,既可以用于创业公司(Start-ups&#xff0…

折半查找和二叉排序树的时间性能_leecode刷题----二分搜索与二叉查找(排序)树...

预备知识:二分查找已知一个排序数组A,如A[-1,2,5,20,90,100,207,800],另外一个乱序数组B,如B[50,90,3,-1,2-7,80],求B中任意某个元素是否在A中出现,结果存储在数组C中,出现用1代表,未出现用0代表…

php pacs,DICOM医学图像处理:WEB PACS初谈四,PHP DICOM Class – 只要踏出一步,路就在前方——zssure – CSDN博客...

背景:预告了好久的几篇专栏博文一直没有整理好,主要原因是早前希望搭建的WML服务器计划遇到了问题。起初以为参照DCMTK的官方文档wwwapp.txt结合前两天搭建的WAMP服务器可以顺利的实现WML服务,借此就可以同时完成WEB PACS系列以及搭建Dicom W…

mfc在运行的时候为什么没有实例化_为什么不建议把数据库部署在Docker容器内?...

本文同步Java知音社区,专注于Java原文:https://www.toutiao.com/i6805798581971190276/近2年Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个…

泛型的优势

假设需要一个两个整形变量交换的函数,我们很快就可以嗒嗒嗒嗒的敲出下面的 Swap 函数:void Swap(ref int lhs, ref int rhs){int temp lhs;lhs rhs;rhs temp;}随着项目进展,我们发现,需要用到 Swap 函数的不仅是整形,变量 还有…

系统分析师资料_如何成为一名数据分析师?

随着大数据的逐渐普及,数据分析越来越普遍应用到各个职能岗位,也就是说,不论你在哪个行业,都会需要数据分析技能。数据岗位的薪资水涨船高,成为目前最有潜力的职业选择之一。根据猎聘发布《猎聘2019年中国AI&大数据…

设置文本区域大小_数据验证基本设置技巧

数据验证可以规范用户的文本及数字输入格式,如只能输入指定区间的数值、只能输入文本数据、限制输入空格、限制输入重复值等。设置了数据验证条件后,对符合条件的数据允许输入,对不符合条件的数据则禁止输入。因此,利用此设置可以…

mysql5.7修改root密码_七小服公开课EMC isilon修改丢失的root密码

1、连接串口,并重启2、在终端上,当引导过程中看到如下提示符时,按下空格键:Hit [Enter] to boot immediately, or any other key for command prompt.3、在OK提示符下,运行以下命令:boot -s4、看到 "Enter full pathname of …

服务器php只显示文本,服务器上的php echos文件是文本而不是二进制文件

我编写了一个PHP页面,它读取一个文件,并在添加了一些头文件后对其进行回显:header(Content-disposition: filename" . $fname . ");header(Pragma: no-cache);header(Expires: 0);header(Cache-Control: must-revalidate, post-check0, pre-check0);header(Pragma: p…

vc 6.0 显示文件全路径_配送路径规划思考(十二)

前面十一集的链接配送路径规划思考(十一)配送路径规划思考(十)配送路径规划思考(九)配送路径规划思考(八)配送路径规划思考(七)配送路径规划思考(六)配送路径规划思考(五)配送路径规划思考(四)配送路径规划思考(三)配送路径规划思考(二)配送最短路径思考(一)思考(十一)分享了政…