ASP.NET C# MVC 初学(一)
环境:VS 2010,MVC 3,不妥对之处,欢迎指出。
一、初识MVC3
.
操作下如图,按确定按钮。
图1
在出现的下图中选择Internet应用程序,勾选创建单元测试项目,按确定。
图2
运行项目,出现以下页面。
图3
单击“关于”菜单项,出现如下页面。
图4
单击“[登录]”项,出现如下页面。
图5
在解决方案资源管理器中,依次双击Controllers、HomeControler.cs项,显示HomeControler.cs的内容如下,可见Controler类有两个返回为AactionResult 类的方法Index和 About。这两个方法都调用了View()方法。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;
namespace MvcApplication1.Controllers { public class HomeController : Controller { public ActionResult Index() { ViewBag.Message = "欢迎使用 ASP.NET MVC!";
return View(); }
public ActionResult About() { return View();
} }
|
在解决方案资源管理器中依次双击View、Home,可见Home下有两个cshtml文件,分别名为About和Index,如下图所示
图6
注意到Views下的Home即对应着解决方案资源管理器中Controllers中的HomeController.cs,其中的About.cshtml和Index.cshtml分别对应着HomeController.cs文件中的和 About和Index方法。
在解决方案资源管理器中双击About.cshtml或Index.cshtml,可以看到它们的内容,以下是About.cshtmlt和Index.cshtml的内容:
@{ ViewBag.Title = "关于我们"; }
<h2>关于</h2> <p> 将内容放置在此处。 </p> |
@{ ViewBag.Title = "主页"; }
<h2>@ViewBag.Message</h2> <p> 若要了解有关 ASP.NET MVC 的更多信息,请访问 <a href="http://asp.net/mvc" title="ASP.NET MVC 网站">http://asp.net/mvc</a>。 </p>
|
将以上代码和图3,图4进行对比,可知这两个文件的作用。
二、增加一个新的Controller和cshtml页面
现在我们增加一个Controller。并在其下建立一个cshtml页面。
在解决方案资源管理器中右击Controllers,依次选“添加”、“控制器”,在出现的“添加控制器”对话框中的“控制器名称”文本框中键入TestController,如下图,
图7
再单击“添加”按钮。
在解决方案资源管理器中双击TestController.cs进入其代码编辑器,如下图,
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;
namespace MvcApplication1.Controllers { public class TestController : Controller { // // GET: /Test/
public ActionResult Index() { return View(); }
} } |
将其中的Index()改成Test(),右击Test(),在弹的菜单中选添加视图,在出现的对话框中单击“添加”按钮,如下图。
图8
三、增加调出Test.cshtml菜单项
现在我们增加Test.cshtml的菜单项。
在解决方案资源管理器中依次展开Views、 Shared,双击_Layout.cshtml,可见其内容如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>@ViewBag.Title</title> <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script> </head>
<body> <div class="page">
<div id="header"> <div id="title"> <h1>我的 MVC 应用程序</h1> </div>
<div id="logindisplay"> @Html.Partial("_LogOnPartial") </div>
<div id="menucontainer">
<ul id="menu"> <li>@Html.ActionLink("主页", "Index", "Home")</li> <li>@Html.ActionLink("关于", "About", "Home")</li> </ul>
</div> </div>
<div id="main"> @RenderBody() <div id="footer"> </div> </div> </div> </body> </html> |
在“<li>@Html.ActionLink("关于","About", "Home")</li>”下面增加一行,内容为
“<li>@Html.ActionLink("测试", "Test","Test")</li>”,运行项目,可见增加了名为“测试”的菜单项,单击该菜单项,显示Test.cshtml的内容。
图9
现在我们对Global.asax进行设置,使新建的Test.cshtml成为项目启动页。
在解决方案资源管理器中双击Global.asax,将
“new { controller = "Home",action = "Index", id = UrlParameter.Optional }”
改为
“new { controller = "Test",action = "Test", id = UrlParameter.Optional }”
运行项目,可见达到目的。
以上我们增加了一个TestController.cs的Controller(下称控制器),并增加了与之对应的名为Test的View(下称视图),并在该视图下增加了Test.cshtml的页面。
四、在已有控制器增加一个增加一个新的页面
在解决方案资源管理器中,依次双击Controllers、HomeController.cs图标,显示HomeControler.cs的内容如下,
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;
namespace MvcApplication1.Controllers { public class HomeController : Controller { public ActionResult Index() { ViewBag.Message = "欢迎使用 ASP.NET MVC!";
return View(); }
public ActionResult About() { return View();
} }
|
在publicActionResult News() 方法下增加一个同样的方法,名为News,如下所示代码中的粗体部分。
…… public ActionResult About() { return View(); } public ActionResult News() { return View(); } …… |
在上述的代码编辑窗口中右击News(),选添加视图,在弹出的添加视图对话框单击添加按钮。
依照上述第三步的方法,增加该页面的菜单项。
<li>@Html.ActionLink("新闻","News", "Home")</li>
运行项目并单击新闻菜单项,已达到目标,如下图所示。
图10