《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 — 第二节:MVC5项目结构
第一境 ASP.Net MVC5项目初探 — 第二节:MVC5项目结构
接下来,我们来看看,VS为我们自动创建的项目,是什么样子的?
可以通过菜单中[View]->[Solution Explorer]项来打开解决方案资源管理器。这是一个树形结构的视图,根节点是解决方案,解决方案节点下,就是一个一个的项目了,目前,我们的解决方案里只有一个项目(HonorShop.Web)。
接下来,展开(HonorShop.Web)项目节点,概要介绍一下几个重要的目录和文件:
App_Data:顾名思义,用来放置应用程序相关数据文件的目录;
App_Start:这里边,默认有三个Config文件,都很重要,以后会经常用到
- BundleConfig.cs:Bundling是MVC提供的一种对静态文件(如:JS脚本、样式表)进行优化的机制;
- FilterConfig.cs:就是用来注册过滤器的。什么是过滤器?有什么用?怎么工作的?我们在后续章节中进行详细讲解;
- RouteConfig.cs:配置MVC应用的路由;
说它们重要,自然是有道理的,因为我们后面会经常用到他们。
Content:用来放置一些静态资源(样式表、图片、音频、视频文件等)。VS默认生成了一个Site.css和Bootstrap框架样式表文件;
Scripts:也是用来放置静态资源,但主要是脚本文件。VS默认放置了bootstrap、jquery和modernizr几个前端框架;
- bootstrap:是Twitter推出的一个用于前端开发的开源工具包。口号是:简洁、直观、强悍的前端开发框架,让web开发更迅速、简单;
- jquery:就不做解释了,说多了都有辱盛名;
- modernizr:是一个 JavaScript 库,用于检测用户浏览器的 HTML5 与 CSS3 特性;
fonts:可以添加一些客户端系统没有安装的字体(*.woff,*.svg);
Models、Views、Controllers:这三个目录为什么绑一块儿说,MVC么,模型、视图、控制器,密不可分,也是本书的主旨,他们的精神将贯穿全书;
Global.asax:这个文件默认包含一个继承自System.Web.HttpApplication的类MvcApplication,这个类中包含一个Application_Start()方法。Application_Start方法中,包含了AreaRegistration.RegisterAllAreas,FilterConfig.RegisterGlobalFilters,RouteConfig.RegisterRoutes和BundleConfig.RegisterBundles这四个初始化注册方法;MVC项目启动时,就会先运行Application_Start方法,这里是开发人员对MVC应用可控的第一入口点。当然,Application_Start不禁让我想起了Web Pages项目中的Global文件中,默认还会列出Application_End,Session_Start和Session_End方法,它们都被放弃了吗?并没有,只是没有出现在默认的创建中出现。
packages.config:使用NuGet管理应用程序依赖包的配置文件,可以在解决方案目录下的packages子目录中找到这些依赖文件;
Web.config:网站项目的配置文件;
《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 — 第二节:MVC5项目结构的更多相关文章
- ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪
ASP.NET MVC深入浅出(被替换) 一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...
- 《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 — 第三节:View层简单改造
第一境 ASP.Net MVC5项目初探 — 第三节:View层简单改造 MVC默认模板的视觉设计从MVC1到MVC3都没有改变,比较陈旧了:在MVC4中做了升级,好看些,在不同的分辨率下,也能工作得 ...
- 《ASP.NET MVC 5 破境之道》:概述
第一节:写作本书的目的 关于笔者 张晓亭(Mike Cheers),1982年出生,内蒙古辽阔的大草原是我的故乡. 没有高学历,没有侃侃而谈的高谈阔论,拥有的就是那一份对技术的执著,对自我价值的追求. ...
- 《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 — 第一节:运行第一个MVC5项目
第一境 ASP.Net MVC5项目初探 — 第一节:运行第一个MVC5项目 创建一个MVC项目,是很容易的,大部分工作,VS都帮我们完成了.只需要按照如下步骤按部就班就可以了. 打开VS2017,选 ...
- ASP.NET MVC使用Bootstrap系列(5)——创建ASP.NET MVC Bootstrap Helpers
阅读目录 序言 内置的HTML Helpers 创建自定义的Helpers 使用静态方法创建Helpers 使用扩展方法创建Helpers 创建Fluent Helpers 创建自动闭合的Helper ...
- Asp.NET MVC 拍卖网站,拆解【2】 Asp.NET MVC章回,第(1)节
时间和篇幅所限,MVC不会介绍基本的建站过程,请参照博客园技术专题文章传送门 英语足够好的请直接去微asp.net 官网 传送门(强烈推荐,尤其是想使用最新技术的时候更应该直接去官网),本文主要介绍 ...
- 解析ASP.NET Mvc开发之删除修改数据 分类: ASP.NET 2014-01-04 23:41 3203人阅读 评论(2) 收藏
目录: 从明源动力到创新工场这一路走来 解析ASP.NET WebForm和Mvc开发的区别 解析ASP.NET 和Mvc开发之查询数据实例 解析ASP.NET Mvc开发之EF延迟加载 ------ ...
- ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(2)之创建项目
我们在创建项目的时候一定要遵循层次和命名的原则,同时也要有统一的规范,无论是多人项目还是单人项目,能够让人看着一目了然并赏析悦目,做一个有追求的程序员. 例如IA.WebApp是视图控制器层(表现层) ...
- 解析ASP.NET Mvc开发之查询数据实例 分类: ASP.NET 2014-01-02 01:27 5788人阅读 评论(3) 收藏
目录: 1)从明源动力到创新工场这一路走来 2)解析ASP.NET WebForm和Mvc开发的区别 ----------------------------------------------- ...
随机推荐
- 使用select实现多并发的socket的功能
select是一个io多路复用的io模型,也叫做事件驱动的io模型,我们今天用select来实现一个多并发的socket的聊天的程序 先看下server端的代码 import socket impor ...
- jQuery html5Validate基于HTML5表单验证插件
更新于2016-02-25 前面提到的新版目前线上已经可以访问: http://mp.gtimg.cn/old_mp/assets/js/common/ui/Validate.js demo体验狠狠地 ...
- IIS6.0创建新网站后,浏览显示需输入用户名和密码
1.首先我们需要创建一个用于匿名访问的账号. 我的电脑右键,电脑管理->本地用户和组->用户->新用户 注意勾选(用户不能更改密码和密码永不过期这两项) 2.右键新创建的用户-& ...
- 【原创】有关Silverlight中 "Silverlight提示4004错误" 的解决方案及思路。
今天下午再改一个页面xaml时没注意一个细节导致了这个错误,整整搞了1个小时.在这给大家参考参考. 出错原因: 总结:其实silverlight已经提示了 出错的细节信息了,没必要因为silverli ...
- jQuery控制TR显示隐藏
参考链接:http://www.jb51.net/article/51221.htm 通过jQuery的hide和show方法即可.
- C语言文本处理
一.conf文本 http://blog.163.com/lixiangqiu_9202/blog/static/53575037201431743236762/ http://blog.csdn.n ...
- Laravel 日期时间处理包 Carbon 的应用
在编写 PHP 应用时经常需要处理日期和时间,这篇文章带你了解一下 Carbon – 继承自 PHP DateTime 类的 API 扩展,它使得处理日期和时间更加简单.Laravel 中默认使用的时 ...
- MessagePack 使用
MessagePack 使用 MessagePack(https://msgpack.org/) 是一个基于二进制高效的对象序列化 Library 用于跨语言通信.它可以像 JSON 那样,在许多种语 ...
- 去掉字符串前后的空格和Tab
<script language=Javascript>function String.prototype.Trim() {return this.replace(/(^\s*)|(\s* ...
- 657. Judge Route Circle
static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...