好久、好久没有讲博客了,之前都忘记有这个技术博客了,只是顾自己去Google和baidu里面去找资料。后来发现有些东西还是讲下来自己会更加清楚明白。以后每周都会逼迫自己写写技术文章。废话到此为止
-----------------------------------------------------------------------------------------------
今天我们讲讲ASP.NET MVC,我使用的是MVC3基于VS2012,当然大家可以在VS2010里面去下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=4211
然后接下来是我个人经验,如果有错误欢迎大家指正。
首先我们打开VS2012创建一个ASP.NET MVC 3项目。在创建使用VS2012里面会弹出一个对话框里面有3个选项
1:空(本人一般使用此选项,因为这个选项不会在项目中创建其它垃圾文件和代码)
2:Internet应用程序(带有使用窗体身份验证的帐户控制器的默认 ASP.NET MVC 3 项目。
注:示例辅助学习项目,里面会自带一些文件和代码。)在这里不多介绍此选项大家有兴趣就自己创建一个看看。
3:Intranet应用程序(此选项同样跟第二个选项差不多的,此选项中比第二个多个功能是它帮您创建了基于Windows身份验证)在这里不多介绍此选项大家有兴趣就自己创建一个看看。
我们还是创建一个空的项目吧。
以下创建空项目时会包含几个选项
1:视图引擎我们选择Razor此为MVC3的语法,当然这里可以不用Razor可以选择ASPX,当ASPX时基于MVC2语法。接下来的课程都是基于Razor语法的。(默认选项)
2:另外问我们是否使用HTML5语义标记。(本课程知识讲解MVC3,所以我们还是默认选项)
接下来我们讲解主要是入门讲解章节
本章主要讲解是:1)MVC基本讲解
  2)创建项目后目录层次和作用
  3)简单代码演示
一、MVC基本讲解
 什么是MVC(MVC全称是:M-Model、V-View、C-Controller)中文翻译(模型->视图->控制器)。接下我想说明它们之间的关系。Model主要是负责数据模型和数据转化,View主要负责UI(User Interface)补充:在这里我想说说其实用户使用的每个View按钮都是对应的一个Action,Controller主要负责用户操作,在每个View上面的按钮都会对应一个Controller里面的一个方法(在此我们称为Action)。
 它们之间的关系是View通过按钮调用后台的Controller里面的Action进行得到客户想要的操作。Controller就会对前台的数据进行操作,当用户需要操作数据时Controller就会发送用户View上面的以处理好的值给Model。Model主要是处理实体类和数据文件(如:LINQ to SQL、Entity Framework实体框架)。
以上就是对MVC的一个简单讲解。
ASP.NET MVC 第一章 我们的第一个MVC例子
二、创建项目后目录层次和作用

ASP.NET MVC 第一章 我们的第一个MVC例子

ASP.NET MVC 第一章 我们的第一个MVC例子

打开VS2012 创建 Web里面有ASP.NET MVC3 Web 应用程序。

项目结构
ASP.NET MVC 第一章 我们的第一个MVC例子
项目结构讲解
App_Data(这个文件夹大家都应该很熟悉了。在WebForms中都可能用到,此文件夹用于存储数据文件如:Access、*.sql脚本文件、数据库备份文件等)
Content(本文件夹负责一些CSS和主题文件。大家可以点进去看看)
Controller(本文件夹一眼就看出来就是我们的MVC里面C了,上面提到我们这个文件夹主要的作用,负责对UI的操作。补充:一个View对应一个Controller)
Models(本文件夹也就是我们的MVC里面M了,主要负责的是实体数据了。同时对Controller要操作的对象数据而提供的)
Scripts(本文件夹属于想自动创建的文件夹主要里面包括一些脚本文件:主要是帮助开发者下载现在广泛使用的Jquery、AJAX异步操作的脚本文件)有兴趣的自己可以对每个文件打开研究里面代码
View(本文件夹就是与用户打交道的文件了里面都是存放界面文件,里面已经有VS为我们创建的文件了可以直接在项目中使用如:Shared目录下面的Error.cshtml等(补充:如我们使用的是MVC2的项目里面文件后缀名为.ASPX,如我们使用的MVC3的项目里面放的文件后缀名为.cshtm。补充2:如果我们是VB.net语法的.vbhtml))
Global.asax 此文件是全局文件,里面有一些代码是我们以后要谈的路由(Route)在此处暂时不讲解和修改默认就行了。
Web.Config XML文件也是属于全局文件主要用户一些配置,在ASP.NETWebForms里面一样可以配置数据库等等配置。与WebForms不一样的是里面详细描述了MVC的一些信息。如:有兴趣自己可以研究每一条XML语句是做什么的。
MVC官方有句说话叫做约定大于语法,所以这句话在我理解就是MVC就是一套微软提供的框架并且大于语法(语法只是对开发上使用,而通过这框架是进行了代码和UI分离)
以上是对MVC3项目里面的目录和结构的讲解
三、代码演示
我先创建一个Controller,创建步骤右键点击Controller目录->添加->控制器(注意:选择后弹出框里面控制器名称:Default1Controller,只用修改Default1后面的是约定就是上面我说的约定大于语法),修改成HomeController。在此我们就创建了一个控制器了
然后我们就要创建一个View,创建步骤右键我们创建一个Home的文件夹来保存我们的View,然后在Home文件右键添加视图,修改视图名称为Index。下面其它默认不修改(介绍:视图引擎上面我说到了我们使用的MVC3所以我们这里是Razor语法)。创建强类型视图(此处有点遗忘了好像是使用自定义别人写的窗体,此处忘记如果有错误下一章我会提到和解释下)创建为分部视图:这个就是问您是否要把此View是否设置成ViewUserControl我们这里暂时不用修改。使用布局或母版页:此处是问您是否要把这个页面设置成部件页面,也就是这里如果有框架页面或者母版页都可以使用,这里暂时用不着。
以上2个部分都创建成功后我们就开始我们的一个MVC3的例子
此例子就显示下字符串把“我们的一个ASP.NET MVC3示例”加当前时间
最后我们进行开发吧,我刚才在上面提到一个View功能代表一个Controller里面的Action现在在我们里面的Index方法里面添加一句话ViewBag.Message = "我们的一个ASP.NET MVC3示例 " + DateTime.Now.ToString();return View();代表返回式当前的View,里面也可以写其它的View名称。如:return View("xxxx");或return View("Display");
然后我们要输出这个字符串,因为我们这里写的代码只有后台代码明白,但是前台代码不认识,我们必须告诉前台你要输出字符串。然后我们找到我们的View在页面调用@ViewBag.Message。@个符号就是我们今后要学习的Razor语法,今天就介绍这一个语法的使用。
补充:ViewBag.此处可以申请您需要的对象(就等于是申请C#字符串一样 如:string str="C#",这里string换成了ViewBag。)

Controller/HomeController文件

Controller/HomeController文件

ASP.NET MVC 第一章 我们的第一个MVC例子
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 
 7 namespace Example_MVC.Controllers
 8 {
 9     public class HomeController : Controller
10     {
11         //
12         // GET: /Home/
13 
14         public ActionResult Index()
15         {
16             ViewBag.Message = "我们的一个ASP.NET MVC3示例 " + DateTime.Now.ToString();
17             //return View("Display");//Home/Display View页面
18             return View();//Index View页面
19         }
20 
21     }
22 }
ASP.NET MVC 第一章 我们的第一个MVC例子

View/Home/Index.cshtml文件

@{
    ViewBag.Title = "Index";
}

<h2>@ViewBag.Message</h2>

如果 return View("Display")页面

View/Home/Display.cshtml文件 跟上面的 Index.cshtml文件

@{
    ViewBag.Title = "Index";
}

<h2>@ViewBag.Message</h2>

下载代码

相关文章: