首页 > 代码库 > MVC项目创建与项目结构介绍

MVC项目创建与项目结构介绍

一、创建MVC项目

打开VS202,点击:文件—>新建—>项目—>Web—>Asp.Net MVC 4 Web应用程序

填好项目名称、解决方案名称和文件存放位置,然后点击确定,则会出现下面对话框:

image

在模板选择中,微软为我们提供了8中模板,其含义如下:

  • 空:就是一个空项目,基本的组件和目录结构还是有的。
  • 基本:一个最低限度的模板,有基本的文件夹,css,MVC应用程序的基本结构。
  • Internet应用程序:一个常用足够丰富的模板,包含可账管理功能(依赖ASP.NET Membership),创建后就可直接运行。
  • Internet应用程序:与Internet应用程序一样只是使用的Windows账户。
  • 移动应用程序:专门针对移动设备的模版,包含移动视觉效果,触摸控件,支持Ajax导航。
  • WEB API:专门针对HTTP services的模板。

在视图引擎中,有两种选择:

image

其中ASPX是与WebForm相同的CodeBehind方式,Razor是专门为MVC提供的一种引擎,其具体语法,参见上一篇Razor标记语言介绍。

单元测试默认只支持Visual Studio Unit Test 一种,且只在VS2012 Professional以上的版本才有,如果是2010,则需要自己下载安装NUnit等拓展

选择好上面那些之后,点击确定,则会创建一个MVC应用程序

二、MVC项目结构

选择Internet应用程序之后,会出现下面的项目结构:

image

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()指定视图名称或视图路径,以返回特定的视图。