2.第一个MVC程序
1)开发准备工作
下载Microsoft Visual Studio 2015安装(下简称vs2015),网上下载和安装流程都很多。我是选择全部组建和功能安装。
2)新建项目
打开vs2015,在左面开始下面点击新建项目。
选择 已安装-Visual C#-Web 点击窗口内ASP.NET Web应用程序,确定。
之后我们看到许多选择,学习MVC,先点击MVC,下方多选框固定选择MVC,右面更改无身份验证。确定。
项目架构和首页已被生成好,这是一个简单的微软MVC例子。
直接点击打开对应浏览器运行此web项目看看。
可以看到一些介绍。但url路径是显示http://localhost:2755/,这只是vs2015占用了一个端口进行调试演示。那么url呢?实际上url被“路游”(Route)指定了一个默认值为当前首页,没有显示出来。
2)初步分析文件夹和里面的东西
其中:Controllers件夹中的控制器必须以Controller结尾,比如上图的Home控制器,这是一个约定。
View文件夹下有Home文件夹,这是对应HomeController控制器里要使用的视图,创建视图时会自动创建。
3)执行Global.aspx
Global.aspx文件会首先执行
在第17行代码中它执行了App_Start文件夹下的RouteConfig.cs类RegisterRoutes方法
下面的代码就是创建了一条名称为“Default”的默认路游器,url能匹对的地址规范是"controller/action/id",defaults默认参数是controller = "Home", action = "Index", id = UrlParameter.Optional(可选)。因为这条路游,我们直接点击运行时,能不输入url运行网站程序。但其实上它访问的是 Home/Index/ 这条url
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
在地址栏输入 (调试用端口)/home/index/ 发现页面是一样的
3)初窥控制器
根据路游的代码看出 url: "{controller}/{action}/{id}" 对应的就是Home Index 其实就是访问Controller文件夹下的HomeController控制器下的一个叫做“index”的action(方法)
Index好像是一个特殊的C#方法,返回ActionResult类型。
在Index代码内部右键,转到视图。(如果没有视图,可以点击添加视图)
跳转到了View文件夹下的Home文件夹下的Index.cshtml文件里。Home文件夹就是对应Homecontroller,添加视图时是会默认以action方法名称去命名视图名的。
验证一下,在Controllers文件夹上右键添加,控制器
先来个空的
控制器必须以Controller结尾,添加。
添加后,我们照葫芦画瓢,弄了一个TextIndex Action方法
试试转到视图?
还是添加视图把,先把使用布局页勾勾去掉。因为我们现在还不知道布局页是什么。添加。
ok,除了2-4行的代码。其余的就是普通的html哦。
在div内加点标示
Views文件夹下面也是自动创建了Text文件夹,和里面也有了对应Action方法名称TextIndex.cshtml文件。
运行程序,把我们刚刚知道的url地址规范填上去。这次我们要访问新建的控制器方法Text/TextIndex/
马上就看到效果了
有过开发基础的同学已经想到。MVC执行过程 大致是:
URL请求-路游寻找控制器-控制器取实体模型model数据-View展示。