ASP.NET MVC 2 学习篇(4)- 创建一个基本的MVC 项目
ASP.NET MVC 2 学习篇(4)- 创建一个基本的MVC 项目
本文演示如何在Visual Studio 中创建一个 ASP.NET MVC 应用程序,接着添加一个控制器和一个视图来定制应用程序。
此外,本文演示如何使用TDD。在向导中,将创建一个项目,并包含对MVC应用程序的单元测试。
在完成本向导程序之前,你需要:
(1)Visual Studio 2008 Service Pack 1或更新的版本。
(2)安装 ASP.NET MVC 2 框架。如果你已经安装了Visual Studio 2010,则 ASP.NET MVC 2 自动安装了。
关于下载 ASP.NET MVC 2 RTM 版本,请参考如下链接:
关于下载 ASP.NET MVC 2 RTM 版本,请参考如下链接:
下面是安装 ASP.NET MVC 2 RTM 的截图
创建一个新的MVC 项目
如下图所示,创建一个ASP.NET MVC 2 项目,项目名称为 MvcBasicWalkthrough,具体其他设置如下。
点击【确定】按钮,将弹出如下对话框。
选择【OK】,创建一个单元测试项目。
默认情况下,测试项目的名称为应用程序的项目名称添加Tests。不过,你也可以根据需要修改测试项目名称。另外,测试项目默认采用Visual Studio Unit Test框架。
点击【OK】按钮,将创建新的MVC 项目和测试项目。
检查MVC 项目
如下图所示,是新创建的MVC 项目。
关于上述目录结构的介绍,请参考如下链接:
新创建的MVC项目是一个完整的应用程序,你可编译、运行。如下图所示,是该MVC应用程序的运行效果。
下面演示添加一个控制器(带一个action方法)和一个视图。
(1)在Solution Explorer,右击 Controllers文件夹,点击Add,接着点击Controller,弹出添加Add Controller 对话框。
在Name 文本框中,输入 MapsController。ASP.NET MVC 框架需要控制器名称以 Controller 结尾,如HomeController,GameController,MapsController等等。
点击【Add】按钮,创建MapsController,并添加到项目中。
(2)创建Action 方法
打开MapsController 类文件,替换其中的Index action 方法为 ViewMaps 方法,如下所示。
public ActionResult ViewMaps()
{
return View();
}
关于添加单元测试的方法和步骤,这里忽略了。
(3)添加视图
首先在Views目录下,添加一个Maps 目录。
添加一个页面内容视图到 MVC 项目中。
打开 MapsController 类,右击 ViewMaps action 方法,接着点击 Add View选项。
弹出 Add View 对话框,如下图所示。
点击【Add】按钮,创建一个新的视图,添加到Maps目录。
打开ViewMaps.aspx 视图文件,并添加如下内容到Content 元素中。
<h2>My City Maps</h2>
Select map:
<select onclick="GetMap(value);">
<option value="Seattle">Seattle, WA</option>
<option value="LasVegas">Las Vegas, NV</option>
<option value="SaltLake">Salt Lake City, UT</option>
<option value="Dallas">Dallas, TX</option>
<option value="Chicago">Chicago, IL</option>
<option value="NewYork">New York, NY</option>
<option value="Rio">Rio de Janeiro, Brazil</option>
<option value="Paris">Paris, France</option>
<option value="Naples">Naples, Italy</option>
<option value="Keta">Keta, Ghana</option>
<option value="Beijing">Beijing, China</option>
<option value="Sydney">Sydney, Australia</option>
</select>
<br />
<br />
<div id='earthMap' style="position:relative; width:400px; height:400px;">
</div>
<script charset="UTF-8" type="text/javascript"
src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us">
</script>
<script type="text/javascript">
var map = null;
var mapID = '';
function GetMap(mapID)
{
switch (mapID)
{
case 'Seattle':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(47.6, -122.33), 10 ,'i', true);
break;
case 'LasVegas':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(36.17, -115.14), 10 ,'i' ,true);
break;
case 'SaltLake':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(40.75, -111.89), 10 ,'i' ,true);
break;
case 'Dallas':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(32.78, -96.8), 10 ,'i' ,true);
break;
case 'Chicago':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(41.88, -87.62), 10 ,'i' ,true);
break;
case 'NewYork':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(40.7, -74), 10 ,'i' ,true);
break;
case 'Rio':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(-22.91, -43.18), 10 ,'i' ,true);
break;
case 'Paris':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(48.87, 2.33), 10 ,'i' ,true);
break;
case 'Naples':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(40.83, 14.25), 10 ,'i' ,true);
break;
case 'Keta':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(5.92, 0.983), 10 ,'i' ,true);
break;
case 'Beijing':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(39.91, 116.39), 10 ,'i' ,true);
break;
case 'Sydney':
map = new VEMap('earthMap');
map.LoadMap(new VELatLong(-33.86, 151.21), 10 ,'i' ,true);
}
}
</script>
(4)添加一个Tab菜单到Master页面
打开Shared文件夹中的Site.master 文件,添加如下代码到 Index 和 About Us 标签页之间。
<li><%= Html.ActionLink("My City Maps", "ViewMaps", "Maps")%></li>
ActionLink 辅助方法连接到一个action 方法,接收如下参数:链接文本,action方法名称,和控制器名称。
(5)运行范例程序
点击My City Maps 标签页,显示My City Maps 页面,如下图所示。
ASP.NET MVC 2 系列学习文章是编译自MSDN上的相关文章,本系列文章由 EntLib.com 电子商务团队提供,所有转贴务必保留链接(http://www.entlib.com/ )
MSDN原文链接: