mvc教程

                          第一章 mvc概述

 

入门

 

需要安装 Visual Studio 2008 或 Visual Web Developer 2008 Express 来构建 ASP.NET MVC 应用程序。还需要下载 ASP.NET MVC Framework。

如果没有 Visual Studio 2008,可以从下面的网址下载 90 天试用版:

http://msdn.microsoft.com/en-us/vs2008/products/cc268305.aspx

另外,也可以使用 Visual Web Developer Express 2008 创建 ASP.NET MVC 应用程序。如果决定使用 Visual Web Developer Express,则必须安装 Service Pack 1。可以从以下网址下载带有 Service Pack 1 的 Visual Web Developer 2008 Express:

http://www.microsoft.com/downloads/details.aspx?FamilyId=BDB6391C-05CA-4036-9154-6DF4F6DEBD14&displaylang=en

安装 Visual Studio 2008 或 Visual Web Developer 2008 后,需要安装 ASP.NET MVC Framework。可以从以下网址下载 ASP.NET MVC Framework:

http://www.asp.net/mvc/

 

 

 

mvc(model-view-controller)   (框架)模型-视图-控制器  同于表示一种软件架构模式。它把软件系统分为三个基本部分模型 (model)存储数据的组件(与领域模型不同)

视图(view)根据model数据进行 内容展示的组件 --获取model的状态

控制器(controller) 接收并处理用户的指令 操作model  .  和model 和 view 协作的 作用

并不只是 业务逻辑的组件 。

表现模式: presentation pattern /ui

 

两种分离:

view和数据(model)分离

-能够 不同的view对model进行展示

- 分离 可视和 不可视 的组件。 能够对model 进行对立测试(view到model单向引用)

view 和 controller 分离

-分离  表现逻辑和 具体展示。--能够进行对立的测试

mvc两种变种:

--observer模式

--MVP模式--事件驱动。

与三层架构的比较

view-- UI Layer

Controller -- BL Layer

Model -DA Layer

MVC  表现模式 :presentation pattern-- 独立关系

优点。 容易分离 。三者 是 协作的关系 

三层架构  架构模式-- 从上 到下  --  依赖关系 --双向引用 --难以分离

没有 可比性。

asp.net mvc 特点

-- 一切都可以 替换

-- viewengine 视图引擎

-- action filter 

--一切都是可测试的

--公开源代码

-- 可以修改

-- 不 可 重新发布

 

asp.net mvc 的组件协作

--url routing   

--asp.net mvc使用 url进行 驱动 

-- 根据程序中制定的规则 从url中:

  --确定 controller 名

  -- 确定action 名

  -- 生成其余各种参数

 article/show/2008/4/10/13411

{controller}{action}{year}{month}{day}{id}

 

--controller&action  executing

-- view rendering

LINQ TO SQL

--.NET FRAMEWORK 3.5的ORM框架

  routes.MapRoute(
                
"Default",
                
"{controller}/{action}/{id}",
                
new { controller = "Home", action = "Index", id = 0 },
                
new { action = @"^\w+", id = @"^\d+" }
            );

            routes.MapRoute(
                
"Blog",
                
"Archive/{date}",
                
new { controller = "Blog", action = "Archive" },
                
new { date = @"^\d{4}-\d{2}-\d{2}" }
            );

            routes.MapRoute(
                
"Car",
                
"Car/{make},{model}",
                
new { controller = "Car", action = "Index" },
                
new { date = @"(acural|bmw)" }
            );

            routes.MapRoute(
                
"Book",
                
"Book/Add/{name}",
                
new { controller = "Book", action = "Add" },
                
new { httpMethod = "POST" }
            );

            routes.MapRoute(
                
"CatchIt",
                
"Product/{*values}",
                
new { controller = "Product", action = "Index" }
           );

再浏览器地址栏 中输入的  url 和 应用程序中的文件 不存在 对应的关系。 再asp.net Mvc 应用程序 中,url web forms 应用程序关注的 是内容,相反

mvc 应用程序  的程序逻辑

 

URL 路由(routing) 的asp。net mvc 功能映射到 控制器的操作. URL 路由  - u使用 路由表 处理 请求。  第一次 启动 创建。

 

路由表 global。asax 文件中设置。

默认的 设置如下

 

public static void registeroutes( routecollection routes)

{

routes.ignoreroute("  {resource}.axd /{*pathinfo}");

routes.maproute{

"default",

"{controller}/action/{id}",

new {controller ="Home" ,action ="index" ,id=""};

}

 

protected void application start()

{

registerrouters{routetable.routes};

}

 

/Product/Details/3

此 URL 被解析为如下三个部分:

Controller = ProductController

Action = Details

Id = 3

 

 

 

 

}

转载于:https://www.cnblogs.com/weihengblogs/archive/2013/01/28/2880507.html

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

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

相关文章

windows下面怎么github ssh 公钥,然后克隆项目

windos下面怎么github ssh 公钥,然后克隆项目 第一步、 1. 安装git,从程序目录打开 "Git Bash" 2. 键入命令:ssh-keygen -t rsa -C "email@email.com" 我的邮箱是chen_yu@kuyu.com , "email@email.com"是github账号 3. 提醒你输入key的…

连破四次吉尼斯世界纪录!厨师界再出神人,用一公斤拉面缔造了一代传奇,背后却是简单的原理……

全世界只有3.14 % 的人关注了爆炸吧知识超模君最喜欢的就是公司楼下海底捞火锅面。不仅是面确实好吃,更重要的是因为海底捞拉面小哥的技艺十分精湛!提臀、收腹,只见拉面小哥化身蹦迪达人,在旋转跳跃中舞动拉面。一顿猛如虎的操作之…

微软推出 .NET 官方社区论坛

James 近日发布博客(https://devblogs.microsoft.com/dotnet/introducing-the-net-tech-community-forums/),推出 .NET 官方社区论坛,为开发者提供一个官方的交流平台,小道消息,微软即将上线中文版的.NET网…

android sdk中添加自定义api,android SDK中添加自定义api【转】

本文的思路:android APP调用自定义java API,自定义java API调用自定义jni接口1:在android源码目录framework/base下面创建add目录add目录里面的结构如下:里面的Nadd.java android_jnitest_Nadd.cpp 和Android.mk内容如下:Nadd.jav…

远程控制利器TeamViewer使用教程(图)

TeamViewer是什么? 他是一款免费的可以穿透内网的远程控制软件,可以实现桌面共享,文件传送等功能,简单一点说就是和QQ远程协助一样,但是比QQ的远程协助功能更为强大。 TeamViewer与木马有什么区别? 说到远程…

千万别让男朋友穿你的短裙......

1 工作太辛苦,我要走了...▼2 应该很有效?▼3 疑车有据!!▼4 这是一部色魔功法...▼5 穿上女友的衣服居然毫无违和感▼视频来源见水印,侵删6 整挺好!▼7 这只有熊猫可以驾驭得了......▼你点的每个赞&…

迎接.NET 6,《dotnet+Linux中文手册》完整PDF开放下载!

昨晚已经正式发布了.NET6,具体参见:https://devblogs.microsoft.com/dotnet/announcing-net-6/。这是.NET团队和社区努力一年的成果,C# 10 和 F# 6 有很大的语言改进,使代码更简单、更好。性能有了巨大的提升,我们看到微软的云服务…

常用MIME类型(Flv,Mp4的mime类型设置)

也许你会在纳闷,为什么我上传了flv或MP4文件到服务器,可输入正确地址通过http协议来访问总是出现“无法找到该页”的404错误呢?这就表明mp4格式文件是服务器无法识别的,其实,这是没有在iis中将相应的MIME类型进行设置的…

史上四大“杀人”建筑,烧掉几百亿,却犯低级错误,网友:有钱人的智商,我不懂

全世界只有3.14 % 的人关注了爆炸吧知识本文转自普象工业设计小站这个世界上有多少荒谬的建筑?国内土味审美的大楼只是冰山一角在更多的国家里耗费巨资,却无比失败的工程比土味大楼更多更荒唐你也许听说过美国这座会跳舞的大桥耗资千万,由优秀…

迎.NET6,今日先送200P全新视频教程 / 源码

昨晚已经正式发布了.NET6,具体参见:https://devblogs.microsoft.com/dotnet/announcing-net-6/。这是.NET团队和社区努力一年的成果,C# 10 和 F# 6 有很大的语言改进,使代码更简单、更好。性能有了巨大的提升,我们看到微软的云服务…

android 横向stepview,Android 流程指示器 StepView

软件介绍StepView 是Android平台下自定义的流程指示器。效果图:使用:android:id"id/step_view0"android:layout_width"match_parent"android:layout_height"wrap_content"android:layout_centerInParent"true"android:text…

58年前,这3个人在“撕逼”中拿下诺贝尔奖!一起研究DNA的女科学家却痛苦去世.........

全世界只有3.14 % 的人关注了爆炸吧知识人类的本质是双螺旋结构1953年4月25日,《自然》杂志发表了一篇不到千字的论文:消息一出,便掀起了科学界的轩然大波。因为这篇短小精悍的论文史无前例地揭示了正确的DNA立体结构。图片仅供参考&#xff…

Azure App Service 上的根证书

点击上方蓝字关注“汪宇杰博客”原文:Amol Mehrotra翻译:Edi Wang导语App Service 有一个受信任的根证书列表,您不能在 App Service 的多租户版本中修改这些证书,但您可以在应用服务环境 (ASE) 的受信任根存储中加载自己的 CA 证书…

jettytomcat对待表单过长问题

为什么80%的码农都做不了架构师?>>> 结论两句话: tomcat知道自己处理不了了,什么也不干过去了 jett知道自己处理不了了,抛个IllegalStateException出来通知一下 jetty默认允许的content-length2001000 org.eclips…

Android之Adapter用法总结

Android之Adapter用法总结 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系: Android中所有的Adapter一览: …

那些年,画家发明的黑科技

全世界只有3.14 % 的人关注了爆炸吧知识在现代摄影技术发明之前,获取图像的最佳方式只有绘画。在绘画的时代,如何把事物画的逼真,几乎成为了困扰画家一生的问题。为了准确展现客观世界,让画面看起来更加逼真,古代的艺术…

Android jdwp 自动断开,开启debug调试模式,进入不了,等一会就闪退了!!!!

原因:debug标记加多了art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() ! GetDebugThread() (Thread::Current()0xe1908400, GetDebugThread()0xe1908400) Expected event thread11-16 15:29:18.457 10331-10339/包名 A/art: art/runtime/runt…

Visual Studio 2022发布了,我最爱的5大特性

VS2022今天Visual Studio 2022 终于发布了,你只需要按下⾯地址就可以快速安装你所需要的Visual Studio 2022版本,包括了企业版本,专业版本,以及社区版本。请输入以下⽹址安装最新的Visual Studio 2022 https://aka.ms/InstallVS或…

ASP.NET3.5 企业级项目开发 -- 第二章 数据访问层(DAL)的开发

为什么80%的码农都做不了架构师?>>> ASP.NET3.5 企业级项目开发 -- 第二章 数据访问层(DAL)的开发 前言:本篇主要讲述数据访问层的开发,而且为了大家交流,已经创建企业项目开发团队&…

22张图片倒叙霍金:我爱宇宙也爱这苦乐人生

全世界只有3.14 % 的人关注了爆炸吧知识▲斯蒂芬威廉霍金(Stephen William Hawking),1942年1月8日出生于英国牛津,21岁时患上肌肉萎缩性侧索硬化症(卢伽雷氏症),全身瘫痪,不能言语&a…