1. MVC目录结构概述

文件夹或文件

描述

备注

/App_Data

此文件夹用于存放私有数据,如XML,或者SQL Server Express\SQLite的数据库文件,或其他基于文件的存储库

IIS将不对此文件夹的内容进行服务,也就是说无法通过Web请求获取该目录的文件

/App_Start

此文件夹包含项目的一些核心配置设置,包括路由、过滤器、捆绑包、API等

 

/Areas

程序中区域的存放文件夹。可以把一个大型应用程序还分为一个个的小片段。

 

/bin

MVC程序编译好的程序集和任何被引用的且不包含在GAC全局程序集缓存中的引用程序集的存放位置

IIS不对此目录进行服务。在解决方案管理器中看不到bin文件夹,需要显示所有文件才能看到。不需要把这个文件夹存储在源代码控制器(TFS)中。

/Content

用于放置MVC的静态内容,如CSS或图片等

这是一个约定但是不是必须的。可以把静态文件放置在任意位置,只要你喜欢。

/Controller

用于放置控制器的文件夹

这是一个约定。可以把控制器类放置在任何位置,因为他们都会被编译到同一个程序集中。

/Models

用于放置视图模型或者域模型类,域模型最好放置在一个专用的程序集中,而把视图模型放置在该文件夹中。

这是一个约定,可以在任意位置上定义模型类。

/Scripts

用于存放Javascript库

这是一个约定,可以存放在任意位置上。

/Views

用于存放视图和部分视图,通常他们关联的控制器命名的文件夹进行分组

/View/Web.config文件阻止IIS对这些目录内容进行服务。视图必须通过动作方法进行渲染。

/Views/Shared

用于存放布局视图以及共享视图。

 

/Views/Web.config

这不是应用程序的配置文件。它包含有使视图能够与Asp.NET进行工作、防止IIS调用视图所需要的配置,还默认导入了视图的命名空间。

 

/Global.asax

这是全局ASP.NET应用程序类。他的后台代码类Global.asax.cs用于注册路由、WebAPI、捆绑包等配置。也涉及建立应用程序初始化、停机或出现未处理异常时需要运行的代码的地方。

 

/Web.config

应用程序的配置文件

 
  1. URL路由

路由系统通常有两个功能:

考察输入的URL,判断需要请求那个控制器和动作。

    生成输出URL。

  1. 注册一个简单的路由,需要在RouteConfig中定义好路由,然后在Global.asax.cs类中注册。如下图:

  1. 路由配置详解。如下图:

  1. 使用属性路由
    1. 属性路由是MVC的一个重要补充,但是它违反了MVC的分离关注点原则。默认的情况下,属性路由是被禁用状态。

    开启属性路由的方式如下:

    1. 使用Route属性标记对动作方法配置路由规则,如下图:

      Route属性标记支持的参数如下表:

名称

描述

Name

需要使用的路由配置的名称

Template

定义一个模式,用于匹配以动作方法为目标的URL

  1. 使用RoutePrefix属性注解定义控制器中所有路由的普通前缀,如图:

作者:smallprogram
感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力。欢迎转载!另外,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论!
 
分类: Asp.NET MVC

MVC5干货篇,目录和路由的更多相关文章

  1. (一)MVC5干货篇,目录和路由

    MVC目录结构概述 文件夹或文件 描述 备注 /App_Data 此文件夹用于存放私有数据,如XML,或者SQL Server Express\SQLite的数据库文件,或其他基于文件的存储库 IIS ...

  2. appledoc导出iOS代码文档的使用和问题详解(干货篇)

    appledoc导出iOS代码文档的使用和问题详解(干货篇) 1. 简单说一下背景和自己感受 背景: 项目好像突然黄了,公司让详细写项目代码的注释并且导出文档,弄完之后就要封版. 说实话:听到这个消息 ...

  3. 《VueRouter爬坑第三篇》-嵌套路由

    VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...

  4. ASP.NET MVC5 新特性:Attribute路由使用详解 (转载)

    1.什么是Attribute路由?怎么样启用Attribute路由? 微软在 ASP.NET MVC5 中引入了一种新型路由:Attribute路由,顾名思义,Attribute路由是通过Attrib ...

  5. ASP.NET MVC5 新特性:Attribute路由使用详解

    1.什么是Attribute路由?怎么样启用Attribute路由? 微软在 ASP.NET MVC5 中引入了一种新型路由:Attribute路由,顾名思义,Attribute路由是通过Attrib ...

  6. mvc5新特性RouteAttribute特征路由

    mvc5新特性RouteAttribute特征路由,本文讲述如何开启mvc5的RouteAttribute路由功能并附上一个实例说明RouteAttribute是怎么工作的 mvc5新特性RouteA ...

  7. VB6.0编程笔记——(1)篇外篇&目录

    从计算机专业毕业到进入IT行业,说来也有些年头了.相比较而言算是幸运,也有很多的同学进入了其他行业,也有一些朋友又想进入这个行业.现在回想自己的一路历程,总结一下,也是一份记忆. 基于以上的原因,希望 ...

  8. ASP.NET MVC5(一)—— URL路由

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  9. [oldboy-django][2深入django]django目录说明 + 路由系统

    django project目录说明 project - app01 -- admin.py #django自带后台管理 -- apps.py #app01配置文件 -- models.py #编写类 ...

随机推荐

  1. DCL单例模式

    我们第一次写的单例模式是下面这样的: public class Singleton { private static Singleton instance = null; public static ...

  2. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  3. 51nod--1264 线段相交 (计算几何基础, 二维)

    题目: 1264 线段相交 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为 ...

  4. linux下export命令添加、删除环境变量(转载)

    转自:http://blog.csdn.net/shenshendeai/article/details/49794699 export命令 功能说明:设置或显示环境变量. 语 法:export [- ...

  5. Go语言从入门到放弃(二) 优势/关键字

    本来这里是写数据类型的,但是规划了一下还是要一步步来,那么本篇就先介绍一下Go语言的 优势/关键字 吧 本章转载  <The Way to Go>一书 Go语言起源和发展 Go 语 言 起 ...

  6. 微信小程序商业级实战

    1.微信开放能力:微信支付.微信登录.二维码生成.分享

  7. input file 多张图片上传 获取地址 ——fileReader

    //上传图片 $('#files').change(function(e){ var fil = this.files; var m =0; if(fil.length>3){ alert('重 ...

  8. 数据结构HashMap(Android SparseArray 和ArrayMap)

    HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在.在HashMap中,key-value总是会当做一个整体来处理,系统会根据 ...

  9. Windows Service 2012 R2 下如何建立ftp服务器

    1.首先在本地机器上创建一个用户!这些用户是用来登录到FTP的!我的电脑右键->管理->本地用户和组->用户->“右键”新建用户->输入用户名和密码再点创建就行了! 2. ...

  10. NMT 机器翻译

    本文近期学习NMT相关知识,学习大佬资料,汇总便于后期复习用,有问题,欢迎斧正. 目录 RNN Seq2Seq Attention Seq2Seq + Attention Transformer Tr ...