上一主题下一主题
«12345»Pages: 1/10     Go
关键字
主题 : 实例快速上手 - ASP.NET MVC4中的Area使用场景与注意事项
级别: VIP四级

UID: 230365
精华: 12
发帖: 314
威望: 3432 点
学点: 380 点
贡献: 2 点
好评: 1 点
学币: 0 个
注册时间: 2010-04-16
最后登录: 2014-09-25
楼主  发表于: 2014-07-23 16:49||

1 实例快速上手 - ASP.NET MVC4中的Area使用场景与注意事项

管理提醒: 本帖被 beifengfwy 执行加亮操作(2014-07-23)
value="70496" />
4O g&w]  
35>VCjCw0  
dG {D2~#  
AC'$~4  
目录 .@7J8FS*  
`VJJ"v<L  
前言 >'\cNM~nf  
创建Area [ vWcQ6m  
Area的运行 39j "z8 n  
Controller的歧义问题 i]sz*\P~  
生成Area URL链接 N^u,C$zP9C  
YbX3_N&  
内容 $]H^?  
*C>B-j$  
前言 {i}z|'!  
=Tdh]0  
ASP.NET MVC允许使用 Area(区域)来组织Web应用程序,每个Area代表应用程序的不同功能模块。这对于大的工程非常有用,Area 使每个功能模块都有各自的文件夹,文件夹中有自己的Controller、View和Model,但对于管理也增加了一定的难度。 c(:qid  
创建Area !sbKJ+V7  
右键工程选择 添加->区域,弹出如下填写Area的对话框: o'9K8q\1  
Q2 tM~  
点击添加后,工程目录结构如下: IO, kGUS  
mn5"kYy?  
和创建一个空MVC工程结构类似,Admin Area 有自己的 Controllers、Models 和 Views 文件夹,不一样的地方就是多了一个 AdminAreaRegistration.cs 文件,这个文件中定义了一个叫 AdminAreaRegistration 的类,它的内容如下: G|WO  
namespace MvcApplication1.Areas.Admin { 86.LkwlqoH  
    public class AdminAreaRegistration : AreaRegistration { Qf?5"=:#  
        public override string AreaName { UD 0v ia  
            get { w>RBth^p  
                return "Admin"; fa~u<m   
            } v&.`^ O3W  
        } 1r %~Rm  
J?Y1G<&  
        public override void RegisterArea(AreaRegistrationContext context) { (6Ss k4  
            context.MapRoute( K]0Q=HY{.  
                "Admin_default", <ZF,3~v?  
                "Admin/{controller}/{action}/{id}", [P'crV,m  
                new { action = "Index", id = UrlParameter.Optional } je 9eJUKE  
            ); ]klP.&I/0  
        } 2(s+?n.N  
    } l?_h(Cq<  
} 1-H L#y*7$  
系统自动生成的 AdminAreaRegistration 类继承至抽象类 AreaRegistration,并重写了 AreaName 属性和 RegisterArea 方法。在 RegisterArea 方法中它为我们定义了一个默认路由,我们也可在这个方法中定义专属于Admin Area的的其他路由。但有一点要注意,在这如果要给路由起名字,一定要确保它和整个应用程序不一样。 37 #|X*L  
AreaRegistrationContext 类的 MapRoute 方法和 RouteCollection 类的 MapRoute 方法的使用是一样的,只是 AreaRegistrationContext 类限制了****的路由只会去匹配当前 Area 的 controller,所以,如果你把在 Area 中添加的 controller 的默认命名空间改了,路由系统将找不到这个controller 。 TB=KT j  
RegisterArea 方法不需要我们手动去调用,在 Global.asax 中的 Application_Start 方法已经有下面这样一句代码为我们****好了这件事: i0,'b61qE  
N k~Xz  
调用 AreaRegistration.RegisterAllAreas 方法让MVC应用程序在启动后会寻找所有继承自 AreaRegistration 的类,并为每个这样的类调用它们的 RegisterArea 方法。 tcovMn '  
注意:不要轻易改变 Application_Start 中****方法的顺序,如果你把RouteConfig.RegisterRoutes方法放到AreaRegistration.RegisterAllAreas方法之前,Area 路由的****将会在路由****之后,路由系统是按顺序来匹配的,所以这样****会让请求 Area 的 Controller 匹配到错误的路由。 \,U#^Vr  
Area的运行 i\4Qv"%  
在Area中添加controller、view和model和一般的添加是一样的。在这,我们在Admin Area中添加一个名为 Home 的controller,代码如下: tb%u<jY  
public class HomeController : Controller { ;(]O*{F7k  
         'Gn-8r+  
    public ActionResult Index() { t}Z*2aea的的其'这样** IO{ background-positsp; &nbse="bo'路由。bbssition:0 -140px; } "displ分2L  
public class HomeController : Controller {Lrder-bsp_catspa;
   &n mw^Di"nbsp;  &n "displ分2L '70 Are!DOCTYPE 门到建Ara;
   &n>DHpD?Pmay:none"> *C>B-j$
 
前言    &n(-V=&F_"nbsp;  &n Are ce建Ara;
   &n(kECV8)2"nbsp;  &n span style="display:non Are&nbs="r_onp;&nbs   &nkR C0iTV'I"nbsp;  &n span style="display:non Ares="fl建Ar; Are/s="fl建Ara;
   &n/0w?"2-"nbsp;  &n Are/h ce建Ara;
   &n5H+S="nbsp;  &n Arec" v建Ara;
   &n ArePg]V:=g⑽扛稣庋睦嗟饔盟     ArentD建Ara;
   &nwm3fd 7Tsp;            Areh2建Ar style="dis; Are/h2建Ara;
   &n?[[K6v}q{ <    &nM4;A4V=p;   &nAre/c" v建Ara;
   &n8QFn/&Ql$B <    &n}v0IzGKs < 然后将oll定蝟ll/ styl/码如/;&nbs,terA是bsp; n style="display:none"> Q2 tMRp#9T?i``[ < i0,'24f44闹鱡85b0b7nbsp;
N^u,C$llerreaNameReg看到绻惆B=K许使作流程其实こ探和根700'下的流程ne"> i\4Q但&nbs并瞣nCrea滞耆懒⑿硎棺鳐匹舝eaNamterA来看看寻找所有继承自 AreaRegistratioQK+s}ny < Area的运行和 />在A好觕ont下:   &n Arelk_]+ XJ3狈    &nbLx70 $display:none"> N^u,C$     ArentD建Ara;
   &nbL=32Yan> 
点击添     span style="display:non Areh2建ArRo }; Are/h2建Ara;
   &n8[\(*E}d!X狈    &nPB !\r}Q狈  ntrolle中 的 rati穆酚芍放到 Ra;
   &n"HWl7c3q狈  <⒁猓翰(none"> 37 #|X*r意:> 'Gn-8r+
 
XT0';if(this.height>'70a;
   &n(styM P4狈       OL{U^uOh添加一个名为 Home 的c        ion :p; Dsp;      &nB_u+$Odhtm gG[qay:none"> *C>B-j$     a的的其'这样** IO{ backgrouncJ 5":^叫 AdminAreaRegistrat "displ分2L 将oll定蝟ll /码如/;&nbs。    &nh[()!\vBy < i0,'e22ecdf9b5a006 
焙蜱果你癇=rati穆Area被 Route只pan>ationCon苣?椤U舛杂isterA i0,'33a85fe3af6d241nbsp;
和一 说明no緍了同名/>Area的 Ra;
   &n)t G` a span> 
&nbs码为我们****好了这件事: i0,'5fd2bb4d252a39 
l?_h(Cq&a;
   &nYoD1\a北 Controller的歧义问题 an>&nuteler oller的ati苯佑胻erA的乃承就行 Ra;
   &nF+vgkqs@9nbsp;  retu@H诺.tyle="Link(p;&nbsb"> <496p; p;&nbsAbonep;&nbs)a;
   &n+ M2|-C;m &和一H诺給del Ra;
   &nI71kFtvcylay:none"> AC'$~4 Areass="b"p;&nbs/ styl/码如/Abonep;&nbs建Arb"> <496pAre/a建Ara;
   &n'?+q3lpsss AdminAreaRegistrat认路由an>&rea ler oller的dis騟r ≡贖诺.tyle="Linky:none匿名参数中yle=rea中添糰ller 变量来指定要r />羠的的专栏名硃an和一般的添加是一样的。在这,我们在~4th;#';m <496use gouse another allep; p;&nbs;  bsp;&nbllebsp; Sup .rp;&nbs;})a;
   &npCSR^u &和一羠的a;
   &nZHxdr X)a c; <496use gouse another allepAre/a建Ara;
   &n/nEh, AreY)a c;outeler />指根700'某=ler、view旱牧r的,那么謌is把alle变量置成空字符串就行 n和一般的添加是一样的。在这,我们在#uNQ+US;   &n@H诺.tyle="Link(p;&nbsb"> <496use gouse ddi2-t2px .rp;&nbs,p;   bsp;&nbllebsp; p;&nbs })a;
   &n"}PaM R版):点此了解详情
它会an>&和一H诺搅r的a;
   &n.bbc" / 3狈 <496use gouse ddi2-t2px .rpAre/a建Ara;
   &nYPAMf&jEFa c;   &nEfY|S3Ava c;基于》中 get=预备知识部分的a;
   &nbet?5Dk崛们肭 Area 的 Contr+ASP四《!    &nTD+V.}a c;   &nR;6(2bTN6a c;Area的ign="center">   &n$b;9o STa c; 35>VCjCw0
 
> d> namn { iv class="cth="8g="0w 大"paati;paddin')">中 ">yle裕篴 c; 顶端">顶端iddle',; ="s="fl">回复
('回 rflo( class="bl)rolen;"00) >回复ef="javascripthtm-ttp://br->
p;&nbsl(imagwind/reply.png" /> 引用回复AlMoen;"> 引用ef="javascripthtm-ttp://br-:0 -120px
分享s="b "font_RENDER("268356");
f
级别: VIP四级
<;
h-htm-authorid-230365-digest-1.html" targ="_blank" class="s4">12
2点: 314
8毕: 2 点
学: 3432 点
: 3432 点
好评: 1 1-12-08 c; 注册时间: <6-05-2ref;
最后登录: 2014-09-25
1570289pan>
楼主  发表于: 2014-07-23 16:49||
该hrefiddleointer" on-htm-tid-70496-uid-230365.html" title="只看楼主的所有帖1570289cla看楼主 |
;
实例快速上手 - ASP.NET MVC4中的Area使用场景与注意事项

本帖被 beifengfwy
value="70496" />
> d>ddan>- namn { iv class="cth="8g="0w 1570289pau-htm-action-show- cfont_RENDER("268356");"paati;paddin')">中 ">yle裕篴 c; 顶端">顶端iddle',; ="s="fl">回复
('回 1楼(nnvvp)rolen;"00) >回复ef="javascripthtm-ttp://br->
p;&nbsl(imagwind/reply.png" /> 1570289pas="fl">引用回复AlMoen;"> 引用ef="javascripthtm-ttp://br-:0 -120px
"font_RENDER("268356");
  发表于: 2014-07-23 16:49||
;
实例快速上手 - ASP.NET MVC4中的Area使用场景与注意事项

CNZZ_SLOT_RENDER("268353");
本帖被 beifengfwy
value="70496" />
> d> namn { iv class="cth="8g="0w 1580688pau-htm-action-show- cfont_RENDER("268356");"paati;paddin')">中 ">yle裕篴 c;> 顶端">顶端iddle',; ="s="fl">回复
('回 2楼(ext/ju)rolen;"00) >回复ef="javascripthtm-ttp://br->
p;&nbsl(imagwind/reply.png" /> 1580688pas="fl">引用回复AlMoen;"> 引用ef="javascripthtm-ttp://br-:0 -120px
"font_RENDER("268356");
c"d-64c">?5"=flow:hiddeniv bs="r_on" v b;
<="copy;&n('1580689class="fl">   发表于: 2014-07-23 16:49||
;
ul"> ext/jut.JS+Web')">中
Areh1建Ar谢谢rflo Are/h1建Araf value="70496" />
> daddan>- namn { iv class="cth="8g="0w 158068 alu-htm-action-show- cfont_RENDER("268356");"paati;paddin')">中 ">yle裕篴 c;> 顶端">顶端iddle',; ="s="fl">回复
('回 3楼(ext/ju)rolen;"00) >回复ef="javascripthtm-ttp://br->
p;&nbsl(imagwind/reply.png" /> 158068 ali
引用ef="javascripthtm-ttp://br-:0 -120px 分享s="b "font_RENDER("268356");
c"d-64c">?5"=flow:hiddeniv bs="r_on" v b;
<="copy;&n('1581607class="fl">   发表于: 2014-07-23 16:49||
ul">ign="center">crazylifet.JS+Web')">中
value="70496" />
> daddan>- namn { iv class="cth="8g="0w 1581607alu-htm-action-show- cfont_RENDER("268356");"paati;paddin')">中 ">yle裕篴 c;> 顶端">顶端iddle',; ="s="fl">回复
('回 4楼(crazylife)rolen;"00) >回复ef="javascripthtm-ttp://br->
p;&nbsl(imagwind/reply.png" /> 1581607ali
c"d-64c">?5"=flow:hiddeniv bs="r_on" v b;
<="copy;&n('1582653class="fl">   发表于: 2014-07-23 16:49||
ul">ign="center">lixubint.JS+Web')">中
CNZZ_SLOT_RENDER("268353");
盿"fontbeifengfwy "
value="70496" />
> daddan>- namn { iv class="cth="8g="0w 1582653alu-htm-action-show- cfont_RENDER("268356");"paati;paddin')">中 ">yle裕篴 c;> 顶端">顶端iddle',; ="s="fl">回复
('回 5楼(lixubin)rolen;"00) >回复ef="javascripthtm-ttp://br->
p;&nbsl(imagwind/reply.png" /> 1582653ali
c"d-64c">?5"=flow:hiddeniv bs="r_on" v b;
<="copy;&n('1584129class="fl">   发表于: 2014-07-23 16:49||
ul">ign="center">jiajiecnt.JS+Web')">中
value="70496" />
> d> namn { iv class="cth="8g="0w 1584129alu-htm-action-show- cfont_RENDER("268356");"paati;paddin')">中 ">yle裕篴 c;> 顶端">顶端iddle',; ="s="fl">回复
('回 6楼(jiajiecn)rolen;"00) >回复ef="javascripthtm-ttp://br->
p;&nbsl(imagwind/reply.png" /> 1584129ali
c"d-64c">?5"=flow:hiddeniv bs="r_on" v b;
<="copy;&n('1585675class="fl">   发表于: 2014-07-23 16:49||
ul">ign="center">shinnan>102="_a vabatp:pt>cutp:pt> vpttp"font_:> vd w_Rid ign="center"> vd ttom:8pass="pic" src="> vb;
bottom:8{ ivtp"font级别: ank"爱好者
iv style="padding-left:12px;-action-sttom:8px;"> 级别: VIP四级
i
<;
h-htm-authorid-230365-digest-1.html" targ2 c;
5 点 c;314
0 点 c;
学0 点 c;
: 3432 点201le=9-2lass="gray"036tp:pt> 注册时间:
最后登录: 2014-09-25
1585675alttom:8p>
value="70496" />
> d> namn { iv class="cth="8g="0w 1585675alu-htm-action-show- cfont_RENDER("268356");"paati;paddin')">中 ">yle裕篴 c;> 顶端">顶端iddle',; ="s="fl">回复
('回 7楼(shinnan>102=)rolen;"00) >回复ef="javascripthtm-ttp://br->
p;&nbsl(imagwind/reply.png" /> 1585675ali
c"d-64c">?5"=flow:hiddeniv bs="r_on" v b;
<="copy;&n('1586385class="fl">   发表于: 2014-07-23 16:49||
ul"> cutp:pt> vpttp"font_:> vd w_Rid vd ttom:8pass="pic" src="> vb;
bottom:8{ ivtp"font级别: ank"爱好者
iv style="padding-left:12px;-action-sttom:8px;"> 级别: VIP四级
<;
h-htm-authorid-230365-digest-1.html" targ1 c;
1毕: 314
3 点 c;
学0 点 c;
: 3432 点201le=9-27 c; 注册时间:
最后登录: 2014-09-25
value="70496" />
> d> namn { iv class="cth="8g="0w 1586385alu-htm-action-show- cfont_RENDER("268356");"paati;paddin')">中 ">yle裕篴 c;> 顶端">顶端iddle',; ="s="fl">回复
('回 8楼(zcksx)rolen;"00) >回复ef="javascripthtm-ttp://br->
p;&nbsl(imagwind/reply.png" /> 1586385ali
c"d-64c">?5"=flow:hiddeniv bs="r_on" v b;
<="copy;&n('1590286class="fl">   发表于: 2014-07-23 16:49||
ul">ign="center">de213="_a vabatp:pt>cutp:pt> vpttp"font_:> vd w_Rid ign="center"> vd ttom:8pass="pic" src="> vb;
bottom:8{ ivtp"font级别: VIP四级
iv style="padding-left:12px;vip4tion-sttom:8px;"> 级别: VIP四级
i
<;
h-htm-authorid-230365-digest-1.html" targ13 c;
103 点 c;314
2r 点 c;
学0 点 c;
: 3432 点2012-10-23 c; 注册时间: <6-11-17 c;
最后登录: 2014-09-25
1590286alttom:8p>
u-htm-afn">上一主题"_a v;u-htm-afn">下一主题"_a v3;u-htm-ab">«"_a vb>1 cbu0a href="read-h诺-tid-70496-fpage-0-page-2.h诺l">2 ca va href="read-h诺-tid-70496-fpage-0-page-3.h诺l">3 ca va href="read-h诺-tid-70496-fpage-0-page-4.h诺l">="_a va href="read-h诺-tid-70496-fpage-0-page-read fl>r ca va href="read-h诺-tid-70496-fpage-0-page-10.h诺l">u-htm-ab">»"_a v;Pages: 1/10     Go ank"网 vaa> » va href="thread-h诺-fid-642-/span0.h诺l">风舞烟老师技术专栏vaa> 1a ="0" celld> ="0"vtp:pt vpttp"fonArea的禸bs.ibeifeng.com03;继续访问"_a vatdttp"fon vd va href="javascript:) wonclick sclosep(0) >取消访问"_a vatdttp"foasspttp"fassablettp"1a ge = parseInt('1000)tpvarddb_ajax = '16';tpvardd>ge = parseInt('100)tpvardjurl = 'read.php?tid=70496&fpage=0&toread=&page=')tpvarddb_h诺ifopen = '1';tpvarddb_dir = '-h诺-';tpvarddb_ext = '.h诺l';tpvarddb_bbsurl = 'Area的禸bs.ibeifeng.com';tpvardcopyurl = 'Area的禸bs.ibeifeng.com/read.php?tid=70496' + (d>ge > 1 ? '&page=' + d>ge : '') + '#';tptpvarddb_urlcheck = '';tptp03;criptvtp1script type stext/javascript" panguage="JavaScript" src="js/pw_lwd.jsav03;criptvtptp1!-- JiaThis Button BEGIN --vtp1script type stext/javascript" src="Area的秜3.jiathis.com/code/jiathis_r.js?move=0" charset="utf-8av03;criptvtp1!-- JiaThis Button END --v0f 清除Cookies"_a vali tp:pt>
  • 联系我们"_a vali tp:pt>
  • 无图版"_a vali tp1!--
  • 发电机說a vali tp--v"fon
  • Total 1.188796(s) query 15, Time now is:02-23 02:55, Gzip disabled va href="Area的秝ww.miibeian.gov.cn" target="_;panka>备案号:沪ICP备08026158号說a va; Powered by va href="Area的秝ww.ibeifeng.com/" target="_;panka>vb>ank"网 cbu0aa> 1a href="Area的秝ww.phpwind.net/" target="_;panka>vbsttom:8pcolor:#FF9900"v cbu0aa> 1a href="Area的禸bs.ibeifeng.com"v b>Certificate cbu0aa> Code © 2003e=9 1a href="Area的秝ww.ibeifeng.com/" target="_;panka>vb>上海育创网络科技有限公司 cbu0aa> Corporation b;
    geTrackers= _gat._getTracker("UA-4682033-1"0)tpd>geTracker._initData(0)tpd>geTracker._trackP>geview(0)tp03;criptvtp1h="8align="cf=ter"v script src="Area的秙84.cnzz.com/stat.php?f" 3504697&web_f" 3504697&show=pi"1"0panguage="JavaScript"v03;criptv1a
  • > > :3 { g="0tp"fontan idf" sw_1590286alu-htm-action-show- cfont_RENDER("268356");"paati;paddin')">中 ">yle裕篴 c;> 顶端">顶端iddle',; ="s="fl">回复
    ('回 9楼(de213=)rolen;"00) >回复ef="javascripthtm-ttp://br->
    p;&nbsl(imagwind/reply.png" /> 1590286ali