ASP.NET MVC基础

一、MVC与ASP.NET MVC基础概念

MVC是Model-View-Controller的缩写.
MVC将应用程序划分为3大组件:模型\视图\控制器.
MVC不是ASP.NET所特有,它只是一种开发理念.java中的struts2也是一种MVC模型.
ASP.NET MVC从2008年发布1.0版以来,截至2014年ASP.NET MVC最新版本已经是5.0.
ASP.NET MVC从1.0版开始,就已经开放源代码(源码地址:aspnetwebstack.codeplex.com).
ASP.NET MVC官网地址:http://www.asp.net/mvc

二、MVC三大组件的相互关系

在控制器中可以直接调用视图和模型

在视图中可以调用模型.

模型不能调用视图

模型能够限定视图中使用的数据,但视图中使用的模型应由控制器提供

在视图中可以调用控制器(通过视图中表单的提交和点击超链接的方式调用)

三、ASP.NET Webform模型和ASP.NET MVC模型的关系

二者都是基于ASP.NET Web框架构建的开发模型.所以ASP.NET中的一些功能可以被二者公用.

Webform编程模型是典型的以事件驱动的web模型,而MVC则不是.

Webform的URL地址是基于文件系统的,而MVC则是基于Action.

四、ASP.NET MVC中的约定

所有的控制器必须放到Controllers文件夹下

所有的控制器类名必须以Controller结尾

所有的模型应该放到Models目录下

所有的视图文件都应该放到Views目录下.

所有的控制器类都应该继承自Controller类(本质上是要继承Icontroller接口)

在控制器类中的public方法被成为Action(行为)

如果在相应的视图目录中没有找到视图文件,那么会寻找Views\Shared目录下名称相同的视图文件

在Action中return view(),默认会返回和Action名称一样的视图文件.

在Global.asax全局应用程序类中注册了默认路由(名称为Default),默认路由指定了Controller默认为Home,Action默认为Index,参数id为可选参数.所以在URL地址中如果不输入controller默认访问Home控制器;如果不输入action默认访问名称为Index的action.http://localhost:54321/   解释:根据默认路由规则,等价于 => http://localhost:54321/Home/Index
http://localhost:54321/Home/Index/5  解释:数值5会自动映射到action中名称为id的参数中。
Http://localhost:54321/Home/Index/5?name=jack&age=20   解释:其中参数包括id、name和age三个

其他

在视图文件中,有一个名称为Model属性,它指代的是从Action中传递的模型数据.为了使用模型数据,我们还需要在aspx视图中<%@Page  %>指令的Inherits属性中设置模型数据的类型/Razor视图中设置model 类型......

(0)

相关推荐

  • 从零开始学ASP.NET-基础篇第1/7页

    第一天 学习目的: 掌握最基本的Label.TextBox.Button控件用法 掌握用StringBuider类连接字符串 理解服务器的环境变量 StringBuilder类: 命名空间是:System.Text. StringBuilder类是个高效的类,StringBuilder.Append连接字符串的方法是非常快的.用于连接大量的字符串,其速度的优越性就会体现出来. 先举几个例子: 在cs或vb文件的头部加上 [C#]using System.Text; [VB]Imports Sys

  • ASP.NET 2.0 程序安全的基础知识

    成员关系的概念在人类社会中是一个层次比较低的概念,源于希望属于某个群组的意识.我们希望能觉得自己是某个团队的一部分,让别人知道我们是谁,因此Web搭上这个流行趋势,采用这个概念只是时间早晚的问题.如果坐下来想一想曾经登录过多少个站点并在这些站点上保存了简单的用户信息,可能会发现自己所属的群组比一开始想象的要多得多.从出售书籍和小器具的站点到讨论拥有一辆Ford Puma的好处的社区,或者宣传一个名为Look Around You的BBC TV喜剧节目的站点,作者发现自己是会员的站点多得无法一一列

  • ASP.NET 5已终结,迎来ASP.NET Core 1.0和.NET Core 1.0

    ASP.NET 在过去的 15 年里是个非常不错的"品牌". ASP.NET 4.6 已经支持在生产环境使用:http://get.asp.net. 但是,命名是新的,完全截取自 ASP.NET 框架 -- "ASP.NET 5",但这并不是个好主意,其中一个原因是:5 > 4.6,这样看起来 ASP.NET 5 比 ASP.NET 4.6 版本号更大,更好,甚至是可以替代 ASP.NET 4.6. 所以修改了名字,选择了一个更好的版本号. 重新引入 ASP.

  • [ASP.NET Ajax] ECMAScript基础类以及Asp.net Ajax对类&lt;Object&gt;的扩展

    "Everything is Object",在面向对象的编程语言中谁都知道这句话,但对我来说这是一种感觉,只可意会很难言传.由于我对JavaScript和薄弱,所以在看Asp.net Ajax类库的同时也翻出了ECMAScript顺便学习学习.在.NET中所有类都是继承自Object,同样在JS中也一样说有都继承Object,因此如果对Object进行了扩展,那所有继承Object类的后代肯定会拥有祖先的血缘. 既然开始学习JavaScript那就顺便在这里提一提他的原始数据类型,在

  • ASP.NET中实现文件的保护性下载基础篇

    一.文件保护性下载的需求 如果我们需要在站点上出售数字形式的商品,如电子书.数字油画等,那么如何在供授权用户正常下载的同时又阻止非授权用户非法下载您的产品呢? 通过Forms身份验证,只能使这个问题得到部分解决.本文中,我将讲解如何防止某些用户访问站点上的某些文件;即使这些文件能够被这些用户直接浏览. 解决这个问题的方法有多种,但是有些方法本身就有问题.本文中,我们将考察软件供应厂商常用的一些技术,然后再介绍一种新的解决方案.需要注意的是,这里介绍的是针对ASP.net站点的. 二.常见的文件保

  • ASP.NET MVC小结之基础篇(二)

    整理除了这个笔记,共享一下子,基本MVC的所有东西都介绍了,但是都是很基础的东西.本来打算一篇发表完的,但是发现东西有点多,所以分成了两篇文章,这是最后一篇了! 1.ASP.NET MVC请求过程 1 2.Controller (1) 控制器在ASP.NET MVC中扮演着处理客户端请求的角色 1)必须实现System.Web.Mvc.IController接口 ->通常直接继承System.Web.MVC.Controller类 2)必须要以Controller结尾 3)通过不同的Action

  • ASP.net基础知识之常见错误分析

    1:command调用存储过程的时候,如果输出是dataset,selectcommand的command对象的connection先要指出,否则catch一辈子也是空的.. 2:存储过程的varchar字段如果是x.x的这种格式,容易出现细微的傻错误,注意不要漏了[]. 3:如果ascx文件的默认服务器控件的事件不重写的话在control控件里面没有自动回送!切记. 4:Page.RegisterOnSubmitStatement在ascx文件中小心使用... 5:viewstate在true

  • ASP.NET MVC小结之基础篇(一)

    前言:前几天要准备一个演讲,所以准备了MVC的一些基本的东西,以前也使用过MVC,但是只是使用,而不是去了解,所以趁着这个机会好好的把别人的MVC视频看了一下(是一个微软的MVP会员发布的视频,相信有些人都看过),整理除了这个笔记,共享一下子,基本MVC的所有东西都介绍了,但是都是很基础的东西.本来打算一篇发表完的,但是发现东西有点多,所以分成了两篇文章! 什么是ASP.NET MVC (1) ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架 (2)M

  • ASP.NET母版页基础知识介绍

    模板页是做什么的? 利用模板页可以方便快捷的创建统一风格的ASP.NET网站,并且容易管理和维护,提高了效率. 模板页为网页定义所需要的外观和标准,在母版的基础上创建包含显示内容的各个内容页.当用户请求内容页时,这些内容页与母版页合并,这样,模板页的布局与内容页的布局就可以组合在一起输出了. 模板页一般用来: 1.通过修改模板页来处理网页的通用功能. 2.可以方便的创建一组控件和代码,并应用于一组网页. 3.通过允许控制占位符控件的呈现方式,模板页可以在细节上控制最终页的布局. 模板页与普通页

  • ASP.NET MVC基础

    一.MVC与ASP.NET MVC基础概念 MVC是Model-View-Controller的缩写. MVC将应用程序划分为3大组件:模型\视图\控制器. MVC不是ASP.NET所特有,它只是一种开发理念.java中的struts2也是一种MVC模型. ASP.NET MVC从2008年发布1.0版以来,截至2014年ASP.NET MVC最新版本已经是5.0. ASP.NET MVC从1.0版开始,就已经开放源代码(源码地址:aspnetwebstack.codeplex.com). AS

  • ASP.Net Core MVC基础系列之环境设置

    上一节我们介绍了中间件的基本使用, 这一节我们讲一讲.Net Core的环境设置, 以及根据不同的环境加载不同的配置信息 PS: 由于最近一直比较忙, 一直没抽时间更新这个系列, 最近居多的博友催我, 所以继续挤挤时间更新这个系列, 感谢大家的对本系列教程的喜欢和支持. 在实际开发中, 我们的系统往往会是至少两个以上的运行环境, 最基本的就是, 开发环境和运营环境, 体系完整的公司, 还会有测试环境, 预发布环境, 和一些自定义环境等等, 这些环境使用的配置或是一些参数肯定是不一样的, 我们不可

  • ASP.Net Core MVC基础系列之中间件

    上一节我们介绍了服务注册和基本的管道执行流程, 并且讲到了中间件, 这一节我们就来详细谈谈中间件这个东西 讲中间件, 其实就是讲Startup类里面的ConfigureServices 和Configure 这两个方法 在程序启动类Program 中, 我们在CreateWebHostBuilder 方法中调用了UseStartup方法, 里面用泛型注入了 Startup 类, 那程序就会自动实例化这个类, 并且去执行它里面的ConfigureServices 和Configure 这两个方法.

  • ASP.Net Core MVC基础系列之服务注册和管道

    想必大家都知道ASP.Net Core MVC默认自带了DI容器的, 我们可以很方便的进行使用, 来方便管理对象和生命周期, 那么这一节我就会详细讲解服务注册, 顺便简单讲解一下管道, 让大家知道了基本的MVC运行流程. 回顾一下上一节的内容, 我们从配置文件中获取了输出的字符, 也介绍各个配置的 "优先级" (其实是配置覆盖), 那么我们这一节以服务的方式输出这个字符串, 然后用过DI进行注册服务, 快速了解服务注册. DI容器呢, 依赖接口, 所以我们先新建一个接口, 就叫 IWe

  • ASP.Net Core MVC基础系列之获取配置信息

    这一节, 我们来讲解.Net Core 是怎么获取配置信息的. .Net Core配置信息来源主要有以下几种 1.appsettings.json文件 2. User Secrets 3. 环境变量 4. 命令行参数 5. 自定义XML等等 在我们上一节新建的项目中, 已经默认有appsettings.json文件了, 并且appsettings.json默认会加载到项目中来, 至于为什么会默认加载, 我们可以通过源码进行分析, VS2017反编译不好用, F12看不到完整的代码, 这里我使用I

  • Asp.net mvc 权限过滤和单点登录(禁止重复登录)

    1.权限控制使用controller和 action来实现,权限方式有很多种,最近开发项目使用控制控制器方式实现代码如下 /// <summary> /// 用户权限控制 /// </summary> public class UserAuthorize : AuthorizeAttribute { /// <summary> /// 授权失败时呈现的视图 /// </summary> public string AuthorizationFailView

  • ASP.NET MVC中使用Bundle打包压缩js和css的方法

    在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便查找问题. 具体优势可自行百度或参看官方介绍:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification 这里仅简单记录下如何使用. 首先,如果是使用的ASP.NET MVC4基本或者其他内容更丰富的模板,B

  • 利用ASP.NET MVC和Bootstrap快速搭建响应式个人博客站(一)

    1.0 为什么要做这个博客站? 在工作学习中,经常要搜索查找各种各样的资料,每次找到相关资料后都会顺手添加到浏览器书签中,时间一长,书签也就满了.而且下次再点击这个书签时,可能就会忘记当时为什么要添加这个书签了,更有可能书签连接已经无效.这样一来,也就不方便自己查阅了.如果转载.收藏到自己的博客园账号中.CSDN账号中,我们中,知乎中等等,依然是很凌乱,不方便下次查阅. 因此,我下决心开发一个个人技术博客站.主要原因是:可以整合各种宝贵资源,将知识变为宝库:可以借此巩固加强一下自己的"全栈&qu

随机推荐