MVC项目创建与项目结构介绍
一、创建MVC项目
打开VS202,点击:文件—>新建—>项目—>Web—>Asp.Net MVC 4 Web应用程序
填好项目名称、解决方案名称和文件存放位置,然后点击确定,则会出现下面对话框:
在模板选择中,微软为我们提供了8中模板,其含义如下:
- 空:就是一个空项目,基本的组件和目录结构还是有的。
- 基本:一个最低限度的模板,有基本的文件夹,css,MVC应用程序的基本结构。
- Internet应用程序:一个常用足够丰富的模板,包含可账管理功能(依赖ASP.NET Membership),创建后就可直接运行。
- Internet应用程序:与Internet应用程序一样只是使用的Windows账户。
- 移动应用程序:专门针对移动设备的模版,包含移动视觉效果,触摸控件,支持Ajax导航。
- WEB API:专门针对HTTP services的模板。
在视图引擎中,有两种选择:
其中ASPX是与WebForm相同的CodeBehind方式,Razor是专门为MVC提供的一种引擎,其具体语法,参见上一篇Razor标记语言介绍。
单元测试默认只支持Visual Studio Unit Test 一种,且只在VS2012 Professional以上的版本才有,如果是2010,则需要自己下载安装NUnit等拓展
选择好上面那些之后,点击确定,则会创建一个MVC应用程序
二、MVC项目结构
选择Internet应用程序之后,会出现下面的项目结构:
Controllers:放置控制器类,MVC 要求所有控制器的名称必须以 "Controller" 结尾。
Models:放置数据描述、操纵类和业务对象类
Views:放置视图,Views下的文件夹的名称必须和对应的控制器名称一样,如如:Views/Account文件夹中包含AccountController类使用的所有视图
Scripts:放置JavaScript脚本
Images:放置图像
Content:放置css和除了JavaScript脚本,图像以外的东西
Filters:放置过滤器代码
App_Data:放置数据存数文件
App_Start:放置配置文件代码,程序的路由规则和过滤规则都在该文件夹下配置
三、注意点
1、向Action传递参数时,实参的名字必须和Action方法的形参名字一样(大小写可忽略),这样才能获取到参数的值。
2、每一个控制器(Controller),在Views目录下都具有一个以自己名字(去掉Controller后缀)命名的文件夹,该文件夹下的每一个视图对应控制器(Controller)中的一个方法(Action),视图名称与方法名称一致
3、MVC程序默认启动页面是在:App_Star文件夹下的RouteConfig.cs文件中进行设置的。
RouteConfig.cs文件中定义了路由的匹配规则
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Demo", action = "RazorTest", id = UrlParameter.Optional }
);
url: "{controller}/{action}/{id}"定义了路由规则。
defaults则定义了启动页面为:DemoController下的RazorTest方法对应的页面(View)
4、每一个Action方法都会通过调用View()方法返回一个ActionResult结构,View()方法若不指定视图名称,则会返回本控制器下该Action方法对应的视图,也可以为View()指定视图名称或视图路径,以返回特定的视图。
MVC项目创建与项目结构介绍的更多相关文章
- Eclipse apk项目创建和项目构架
一.创建项目工程 设定名字 设定包名(每一台机器只有唯一的包名)下一步 根据设置进行选择 创建空项目 Finish即可创建 调节项目的字体 二.Eclipse 项目构架 Src 2. Gen R.ja ...
- 用Eclipse+ADT创建可运行项目,创建lib项目,引用一个lib项目
Managing Projects from Eclipse with ADT In this document Creating an Android Project 创建可运行项目 Settin ...
- Angular—入门环境,项目创建,导入项目
1.安装 nodejs,npm nodejs 下载地址: https://nodejs.org/en/download/
- 四、IntelliJ IDEA 之 HelloWorld 项目创建及相关配置文件介绍
咱们通过创建一个 Static Web 项目大致了解了 IntelliJ IDEA 的使用界面,接下来,趁着这个热乎劲,咱们来创建第一个 Java 项目“HelloWorld”,进入如下界面: 如上图 ...
- 从“空项目”创建MFC项目遇到的问题error C1189,error MSB8031
在VS2013中创建了一个空项目,创建了MyApp.h, MyApp.cpp(MyApp.h使用了<afxwin.h>) build的时候报错: fatal error C1189: #e ...
- mobx项目创建 + mobx项目流程代码
一. 安装mobx 1. react 安装并 reject抽离配置 1. 全局安装 create-react-app 这个脚手架 npm/cnpm i create-react-app -g yarn ...
- IDEA-servlet项目创建web项目
准备:1. 安装jdk1.82. 安装tomcat9.0(idea只支持4.0 9.0的服务器) 一.创建并设置javaweb工程 1.创建javaweb工程File --> New --&g ...
- 关于eclipse项目创建maven项目目录不正常的解决方案
最近学习ssh和maven,遇到了很多问题····首先一个很基础的问题就是我搭建的maven项目目录和教程上的不一样.我的目录之前是这样的: 而教程里的是这样的========> 因为是跟着视频 ...
- IDEA下创建Maven项目,并整合使用Spring、Spring MVC、Mybatis框架
项目创建 本项目使用的是IDEA 2016创建. 首先电脑安装Maven,接着打开IDEA新建一个project,选择Maven,选择图中所选项,下一步. 填写好GroupId和ArtifactId, ...
随机推荐
- 2017/1/8 C语言程序练习d
有10个数按由小到大顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,则打印出"无此数". 输入:-12 -8 12 24 45 ...
- javascript笔记:流程控制语句
一.条件语句 1.if语句 if 语句即条件判断语句,一共有三种格式: (1)if (条件表达式) 语句: var box = 100; if (box >50) { alert('box大于5 ...
- sqoop1.99.6 update导出语句
我们采用sqoop-export插入数据的时候,如果主键已经存在了,插入会失败.想要根据主键判断是否要进行insert操作还是update操作,sqoop提供了update语法.示例 sqoop -- ...
- 通过WinForm控件创建的WPF控件无法输入的问题
今天把写的一个WPF程序发布到别的机器上执行,发现一个比较奇怪的问题:在那个机器上用英文输入法无法输入数字,非要切换到中文输入法才行:但在我的机器上却是好好的. 最开始以为是输入法的问题,弄了好一阵子 ...
- mysql之字符编码问题
mysql编码分为服务端编码和客户端编码两大类字段编码, 表编码, 数据库编码这些编码都属于服务端编码,服务端编码决定你可以存哪些字符以及这些字符要哪种规则排序.字段编码优先级最高. 你插入用什么码属 ...
- 基于WDF的PCI/PCIe接口卡Windows驱动程序(3)- 驱动程序代码(头文件)
原文出处:http://www.cnblogs.com/jacklu/p/4679304.html 在WDF的PCIe驱动程序中,共有四个.h文件(Public.h Driver.h Device ...
- C# 接口应用及意义
写在前面:新手入行,读者勉强看看吧,写的不对的欢迎讨论,板砖轻拍! 一.定义 接口描述的是可属于任何类或结构的一组相关功能,所以实现接口的类或结构必须实现接口定义中指定的接口成员. 通常用Interf ...
- hive 中窗口函数row_number,rank,dense_ran,ntile分析函数的用法
hive中一般取top n时,row_number(),rank,dense_ran()这三个函数就派上用场了, 先简单说下这三函数都是排名的,不过呢还有点细微的区别. 通过代码运行结果一看就明白了. ...
- MySQL 5.7 深度解析: 半同步复制技术
复制架构衍生史 在谈这个特性之前,我们先来看看MySQL的复制架构衍生史. MySQL的复制分为四种: 普通的replication,异步同步. 搭建简单,使用非常广泛,从mysql诞生之初,就产生了 ...
- 比较详细PHP生成静态页面教程
一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合, 也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客 ...