.net中的域Area
ASP.NET MVC允许使用Area(区域)来组织web应用程序,每个Area代表应用程序的不同功能模块。这对于大工程非常有用,Area使每个功能模块都有各自的文件夹,文件夹中有自己的Controller、View和Model。比如说,一个项目分为三个模块,分别是(Customer、Order、User),那么用mvc 的area是这样建立的。
添加一个Area
首先用VS新建一个MVC的解决方案。在解决方案中,鼠标右键点击添加区域。
在弹出的对话框中输入区域的名字
对于其他模块重复以上动作就可以了,最后我们得到的结构是这样的:
注册Area
每一个area的注册文件都是继承自AreaRegistration类的,比如UserAreaRegistration的类的代码是这样的:
<span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:12px;">using System.Web.Mvc; namespace mvcdemo.Areas.User { public class UserAreaRegistration : AreaRegistration { public override string AreaName { get { return "User"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "User_default", "User/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } ); } } } </span>
并且在Global.asx文件中会发现Application_Start事件中有以下方法:
<span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:12px;">protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); }</span>
Areas之间的调用
关于Area之间的调用,可以分为三种情况:第一种是在当前Area生成指向当前Area的链接;第二种是生成指向其他Area的链接;第三种是在某个Area中生成指向根目录的链接。下面是这三种情况生成链接的方法:
(1)如果要在Area中生成当前Area的URL链接,可以这样写:
<span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:12px;">@Html.ActionLink("Add", "BasicInfo")</span>
(2)如果要生成其他Area的URL链接,则需要在Html.ActionLink方法的匿名参数中使用一个名为area的变量来指定要生成链接的Area名称,可以这样写:
<span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:12px;">@Html.ActionLink("Click me to go to another area", "Index", new { area = "Customer" })</span>
(3)如果要在当前Area生成指向根目录某个Controller的链接,那么只要把area变量变为空字符串就行,可以这样写:
<span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:12px;">@Html.ActionLink("Click me to go to top-level part", "Index", new { area = "" })</span>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。