本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=91&extra=page%3D1
上一节,我们已经搭建好了ASP.NET
MVC3的开发环境。有了开发环境,我们就能够开始写一个Web应用程序了。
1、首先打开VS2010.新建项目,在安装模板中选择Web,在右边选择ASP.NET MVC 3 Web Application。
1、首先打开VS2010.新建项目,在安装模板中选择Web,在右边选择ASP.NET MVC 3 Web Application。
2、输入项目名称、选择解决方案位置和输入解决方案名称,后选择OK,系统叫提示你选择项目模板和视图引擎,如图所示:
3、我们选择空项目模板(Empty)和Razor视图引擎,点击OK,项目就创建完成。初始化的项目目录如图所示:
4、下面先介绍各个目的主要作用:
当然上述文件夹的作用只是微软给我们提供的一个规范而已,不是强制需要,你也可以按照自己的想法存放文件,只是微软建议你这样做,以方便管理。
5、上一小节解释了各个文件夹的作用,显然我们看到了Controller、Models、Views,一般对MVC模式有所了解的人都会明白这个三个文件夹的重要性。显然Controller文件夹存放控制器C的代码,Models存放实体类代码,Views存放视图类代码。下面我们就动手写第一个控制器HomeController。在Controllers文件夹上面点击右键,Add--Controller。然后点击OK,这样就创建了HomeController,在HomeController控制器中,系统默认为我们创建了Index方法,我们需要问Index方法添加视图。操作时在Index方法中点击鼠标右键,选择Add
View,所有参数我们默认即可,然后Add就创建了Index的视图。这个视图文件的位置在Views文件夹下面的Home文件夹下,文件名为Index.cshtml。cshtml为后缀的文件表示以Razor视图文件编写的视图文件。我们修改Index.cshtml中的代码
@{ ViewBag.Title ="Index"; } <h2>这是我的第一个文件</h2>
然后运行该项目(F5)。效果如下:
观察浏览器的地址http://localhost:6187/,这显然和我们的Home控制器和Index方法没有任何联系,那么系统为什么给我们显示的是Home控制器下面的Index视图呢?这就需要从ASP.NET
MVC3的路由说起,以后有相关的章节专门讲解,这里仅仅点到为止。在Global.asax文件中有一个RegisterRoutes方法,一看名字就明白这是一个注册路由的方法。默认的路由设置就在这个方法中,里面的代码下
public static void RegisterRoutes(RouteCollectionroutes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default",// Route name "{controller}/{action}/{id}",// URL with parameters new{ controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults ); }
这段代码的意思是说URL的默认映射规则为{controller}/{action}/{id}",即:URL的组成为:Host:端口号/控制器/方法名称/id参数。并且默认的控制器名称为Home,默认的action名称为Index。也就是说http://localhost:6187/这个URL应该和http://localhost:6187/Home/Index等同,我们先试试。
果然返回的页面是一样。同理,如果我们要访问控制器中的其他方法,就只需要把Index替换了即可。现在我们写一个我们自己的方法叫FirstMethod。代码如下
public class HomeController : Controller { // // GET:/Home/ public ActionResult Index() { returnView(); } public ActionResult FirstMethod() { returnView(); } }
我们添加FirstMethod的对应视图,并写入我们的代码,代码如下
@{ ViewBag.Title = "FirstMethod"; } <h2>这是我的第一个ASP.NETMVC方法,FirstMethod</h2>
然后运行项目,输入URL为http://localhost:6187/Home/FirstMethod,如图,这就成功了。
如何你想让系统默认就房屋FirstMethod方法,只需要把Global.asax文件中有一个RegisterRoutes方法的action=”Index”修改为action=”FirstMethod”即可。
这样第一个web
app就完成了。下一节讲解参数传递。