
ãšãªã¢ã®æŠå¿µã¯ããã«ããããžã§ã¯ããœãªã¥ãŒã·ã§ã³ã®ãšãªã¢ãšããŠASP.NET MVC 2 Preview 1ã«ç»å ŽããŸããã ASP.NET MVC 2 Preview 2ã®ãªãªãŒã¹åŸããšãªã¢ã®ã¢ããªã±ãŒã·ã§ã³ã¯ã1ã€ã®ãããžã§ã¯ãã§ãšãªã¢ãäœæã§ããããã«æ¡åŒµãããŸããã äž¡æ¹ã®ãªãã·ã§ã³ãæ€èšããŠãã ããã
ããã€ãã®ãããžã§ã¯ãã®ãšãªã¢
è€æ°ã®ãããžã§ã¯ãã§åäœããé åã䜿çšããŠãœãªã¥ãŒã·ã§ã³ãäœæããå Žåã次ã®æé ã«åŸãå¿ èŠããããŸãã
- ä¿è·åºåã«é¢é£ããŠèŠªïŒãŸãã¯ã¡ã€ã³ïŒã«ãªããããžã§ã¯ããäœæããŸãã
- ããšãã°ããã©ãŒã©ã ãããã°ãã¹ãã¢ãªã©ã®ãšãªã¢ãããžã§ã¯ããäœæããŸãã ãããã®ãããžã§ã¯ãã§ã¯ã Global.asaxãã¡ã€ã«ãåé€ããå¿ èŠããããŸããããã«ããã¹ãŠã®ã¹ã¯ãªããã¯èŠªãããžã§ã¯ãããååŸãããããã scriptsãã©ã«ããŒã§äœæãããããã©ã«ããã¡ã€ã«ãåé€ã§ããŸãã
- 芪ãããžã§ã¯ãã®ãããžã§ã¯ããšãªã¢ãžã®ãªã³ã¯ãè¿œå ããŸãã
- åãããžã§ã¯ãã«å¯ŸããŠã AreaRegistrationã¯ã©ã¹ããç¶æ¿ããã¯ã©ã¹ãäœæããŸãã ãã®ã¯ã©ã¹ã§ã¯ã RegisterAreaã¡ãœãããšAreaNameããããã£ã®2ã€ã®èŠçŽ ããªãŒããŒããŒããããŸãã RegisterAreaã¯ãã¢ããªã±ãŒã·ã§ã³ã³ã³ããã¹ãã§é åãç»é²ããããã®ããžãã¯ãå®è£ ããå¿ èŠããããAreaNameããããã£ã¯é åã®ååãè¿ãå¿ èŠããããŸãã
- Global.asaxã®èŠªãããžã§ã¯ãã§ã¯ã AreaRegistration.RegisterAllAreasïŒïŒã¡ãœãããåŒã³åºãå¿ èŠããããŸãã èµ·åæã«ã¢ããªã±ãŒã·ã§ã³ã³ã³ããã¹ãã«é åãç»é²ããããã
- ãšãªã¢ãå«ããããžã§ã¯ããæ£åžžã«èµ·åããããã«å¿ èŠãªæåŸã®æé ã¯ãåãããžã§ã¯ãã®* .csprojãããžã§ã¯ããã¡ã€ã«ïŒVisual Basicãããžã§ã¯ãã®å Žåã¯* .vbproj ïŒãå€æŽããããšã§ãã ãã®ãããªåãã¡ã€ã«ã§ã¯ããšãªã¢ã«é¢é£ããã³ãŒãè¡ã®ã³ã¡ã³ããå€ãå¿ èŠããããŸãïŒä»¥äžã«è¡šç€ºãããŸãïŒã

å³1 ãšãªã¢ãæã€ASP.NET MVCãããžã§ã¯ãã®æ§é
ForumControllerã³ã³ãããŒã©ãŒãForumãããžã§ã¯ãé åã«äœæããã3ã€ã®ã¢ã¯ã·ã§ã³ã Index ã AddPost ã EditPostãå®è£ ããŸãã åæ§ã«ãã¢ã¯ã·ã§ã³List ã AddReview ãããã³Detailsã䜿çšã㊠ã Productsãããžã§ã¯ããStoreãããžã§ã¯ãã«äœæãããŸããã ã¢ã¯ã·ã§ã³ã®çµæã衚瀺ããã«ã¯ã察å¿ãããã¥ãŒãäœæããŸããã ãšãªã¢ãããžã§ã¯ããäœæããåŸããããã®ãããžã§ã¯ããžã®ãªã³ã¯ãAreasProjectãããžã§ã¯ãã«è¿œå ãããŸããã
å³ 1 Storeããã³Forum ãããžã§ã¯ãã§Routes.csãã¡ã€ã«ã確èªã§ããŸãã ãã®ãã¡ã€ã«ã¯ãAreaRegistrationã¯ã©ã¹ãå®è£ ããããã«ãããžã§ã¯ãã«è¿œå ãããŸããã ãªã¹ã1ã®Storeãããžã§ã¯ãã®Routes.csãã¡ã€ã«ã®å 容ãæ€èšããŠãã ããã
ãªã¹ã1. Storeãããžã§ã¯ãã®Routes.csãã¡ã€ã«ã®å 容
namespace Store
{
using System.Web.Mvc;
using System.Web.Routing;
public class Routes : AreaRegistration
{
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Store_Default" ,
"Store/{controller}/{action}/{id}" ,
new {controller = "Products" , action = "List" , id = "" },
new string [] { "Store.Controllers" }
);
}
public override string AreaName
{
get { return "Store" ; }
}
}
}
Routesã¯ã©ã¹ã¯AreaRegistrationãç¶æ¿ããŸããããã«ãããASP.NET MVCãµãã·ã¹ãã ã¯ããã䜿çšããŠãšãªã¢ãµãã·ã¹ãã ãããã«åæåã§ããŸãã Routesã¯ã©ã¹ã«ã¯ãRegisterAreaã¡ãœãããšAreaNameããããã£ã®2ã€ã®ãªãŒããŒããŒããããã¡ã³ããŒãå«ãŸããŠããŸãã
RegisterAreaã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããã¹ãã§ã«ãŒãããšãªã¢ã«ç»é²ããŸãã context.MapRouteã䜿çšããŠã Store_Defaultãšããã«ãŒããäœæãããŸãã ãã©ã¡ãŒã¿ãŒnew string [] {"Store.Controllers"}ã®æåŸã®å€ã¯ããã®ã«ãŒãã«é¢é£ä»ããããã³ã³ãããŒã©ãŒãé 眮ãããåå空éãå®çŸ©ããŸãã
ãªãŒããŒããŒããããAreaNameããããã£ã¯ããšãªã¢ã®ååãè¿ããŸãã ãã®ååã¯ãASP.NET MVCãšéçºè ã®äž¡æ¹ãããã«äœ¿çšããŠãå¿ èŠãªæ©èœãåŒã³åºãå¿ èŠãããé åã瀺ããŸãã
ã¹ãã¢ãããžã§ã¯ãã®ã«ãŒããªã©ã®ã¯ã©ã¹ã¯ããšãªã¢ãå«ããœãªã¥ãŒã·ã§ã³å ã®ãããžã§ã¯ãããšã«äœæããå¿ èŠããããŸãã
次ã®æé ã¯ãGlobal.asaxã®AreasProject芪ãããžã§ã¯ãã«æ¬¡ã®ã³ãŒãè¡ãè¿œå ããããšã§ãã
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
ã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«AreaRegistration.RegisterAllAreasïŒïŒãåŒã³åºããšãASP.NET MVCãã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšå¯èœãªãã¹ãŠã®é åãšãã®ã«ãŒããåæåã§ããŸãã
ãšãªã¢ãå«ããããžã§ã¯ããéå§ããããã«å¿ èŠãªæåŸã®æé ã¯ããœãªã¥ãŒã·ã§ã³å ã®åãããžã§ã¯ãã®* .csprojãããžã§ã¯ããã¡ã€ã«ïŒãŸãã¯ãããžã§ã¯ããVisual Basicã§èšè¿°ãããŠããå Žåã¯* .vbprojïŒãå€æŽããããšã§ãã ãããã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããã«ã¯ã UnloadProjectã³ãã³ãã䜿çšããŠããœãªã¥ãŒã·ã§ã³ãããããžã§ã¯ããé çªã«ã¢ã³ããŒãããŸãã ããŠã³ããŒããããããžã§ã¯ãã®ã³ã³ããã¹ãã¡ãã¥ãŒã§ã[ ç·šé] ***ãCsproj ïŒå³2ïŒãéžæããŸãïŒ***ã¯ãããžã§ã¯ãã®ååïŒã

å³ 2.ãããžã§ã¯ããã¡ã€ã«ãç·šéã§ããã³ã³ããã¹ãã¡ãã¥ãŒ
ãããžã§ã¯ããã¡ã€ã«ã«ã¯ããšãªã¢ã«åºã¥ãããœãªã¥ãŒã·ã§ã³ã䜿çšããããã«ã³ã¡ã³ããå€ãå¿ èŠãããã³ã¡ã³ãä»ãå®çŸ©ã®äžéšãå«ãŸããŠããŸãã ãšãªã¢ãããžã§ã¯ãã®å Žåããããã¯ã³ã¡ã³ãä»ãã®ã³ãŒãã§ãã
<ïŒ-MVCãšãªã¢ãµããããžã§ã¯ããµããŒããæå¹ã«ããã«ã¯ã次ã®2è¡ã®ã³ã¡ã³ããå€ããŸãã->
ãããŠ
<ïŒ-ããããšãªã¢ã®åãããžã§ã¯ãã§ããå Žåã次ã®è¡ã®ã³ã¡ã³ããå€ããŸãïŒ->
芪ãããžã§ã¯ãã®å ŽåãããŒã¯ãããã³ãŒãã®ã³ã¡ã³ããå€ãå¿ èŠããããŸãã
<ïŒ-MVCãšãªã¢ãµããããžã§ã¯ããµããŒããæå¹ã«ããã«ã¯ã次ã®2è¡ã®ã³ã¡ã³ããå€ããŸãã->
ãããŠ
<ïŒ-ããããšãªã¢èŠªãããžã§ã¯ãã§ããå Žåã以äžã®è¡ã®ã³ã¡ã³ããå€ããŸãïŒ->
ã泚æ
ASP.NET MVC 2ã®å°æ¥ã®ãªãªãŒã¹ã§ã¯ããããžã§ã¯ããã¡ã€ã«ã®ç·šéãäžèŠã«ãªãããšãç¥ãããŠããŸãã ãœãªã¥ãŒã·ã§ã³ãšã¯ã¹ãããŒã©ãŒã¬ãã«ã§ãšãªã¢ã®äœæ¥ããµããŒããããããšãæåŸ ãããŸããããã«ãããæ°ãããšãªã¢ãšãããã«åºã¥ããããžã§ã¯ãã®äœæã容æã«ãªããŸãã
ãããžã§ã¯ãã³ãŒãã®æºåãå®äºããã®ã§ã芪ãããžã§ã¯ãã®ãããžã§ã¯ããšãªã¢ã次ã®ããã«äœ¿çšã§ããŸãã Site.Masterãã¡ã€ã«ã®èŠªãããžã§ã¯ãã®ã¿ãã³ãŒããªã¹ãã®ã³ãŒããããã¯ãå€æŽããŠããã©ã°ã¡ã³ãã®ããã«èŠããŸããã ã
< ul id ="menu" >
< li > <% = Html.ActionLink( "Home" , "Index" , "Home" ,
new {area = "AreasProject" }, null ) %> </ li >
< li > <% = Html.ActionLink( "Forum" , "Index" , "Forum" ,
new { area = "Forum" }, null ) %> </ li >
< li > <% = Html.ActionLink( "Store" , "List" , "Products" ,
new { area = "Store" }, null ) %> </ li >
< li > <% = Html.ActionLink( "About" , "About" , "Home" ,
new {area = "AreasProject" }, null ) %> </ li >
</ ul >
Html.ActionLinkã䜿çšãããªã³ã¯æ§ç¯ã§ã¯ãã³ã³ãããŒã©ãŒãšã¢ã¯ã·ã§ã³ãæ€çŽ¢ããé åãæå®ããå¿ èŠããããŸãã ãããžã§ã¯ããå®è¡ãããšã次ã®ããã«è¡šç€ºãããŸãïŒå³3ïŒã

å³3 å®è¡äžã®ã¢ããªã±ãŒã·ã§ã³
æ°ãã[ã¹ãã¢]ã¿ããš[ãã©ãŒã©ã ]ã¿ãã¯ãæå®ãããã«ãŒã«ã«åŸã£ãŠæ©èœãããããžã§ã¯ããšãªã¢ã®ãã¥ãŒã衚瀺ããŸãã
1ã€ã®ãããžã§ã¯ãå ã®ãšãªã¢
è€æ°ã®ãããžã§ã¯ãã®é åã®åã®äŸã®ãœãªã¥ãŒã·ã§ã³ã«ã芪ãããžã§ã¯ãã®é衚瀺ãã¡ã€ã«ã衚瀺ãããªãã·ã§ã³ãå«ãããšã次ã®å³ã衚瀺ãããŸãïŒå³4ïŒã

å³ 4.é衚瀺ã®æ±ºå®èŠçŽ
芪AreasProjectãããžã§ã¯ãã§ã¯ããšãªã¢ãããžã§ã¯ãã®é衚瀺ã¢ã€ãã ããã¥ãŒ/ãšãªã¢ãã©ã«ããŒã«äœæãããŸãã ããã¯ã芪ãããžã§ã¯ãããããžã§ã¯ãé åã®è¡šçŸãç¬ç«ããŠè¡šç€ºããããã«å¿ èŠã§ãã
ãã ãããã®é ããã¡ã€ã«ã®æ§é ã¯çŽæ¥äœ¿çšã§ããŸãã ASP.NET MVC 2 Preview 2ã§ã¯ããšãªã¢ã«åºã¥ããåäžã®ãããžã§ã¯ãã§ãœãªã¥ãŒã·ã§ã³ãäœæããæ©èœãå°å ¥ãããŠããŸãã ãã®ãããªãœãªã¥ãŒã·ã§ã³ã«ã¯ããã¹ãŠã®é åãå®è£ ãããŠãããããžã§ã¯ãã1ã€ã ãå«ãŸããŠããŸãã å³ å³5ã¯ã1ã€ã®ãããžã§ã¯ãã®æ§é ã瀺ããŠããŸããããã§ã¯ãåã®ã»ã¯ã·ã§ã³ã§ããã€ãã®ãããžã§ã¯ãé åã䜿çšããŠå®è£ ãããã®ãšåãé åãå®è£ ãããŠããŸãã

å³5 ãšãªã¢ã«åºã¥ãåäžãããžã§ã¯ãã®æ§é ã
ãã®ãããªãããžã§ã¯ããäœæããã«ã¯ãåã®äŸãšåæ§ã«ãè€æ°ã®ãããžã§ã¯ãã®ä»£ããã«ã1ã€ã®ãããžã§ã¯ãã«å°åã®éå±€ãäœæããå¿ èŠããããŸãã ãããè¡ãã«ã¯ããããžã§ã¯ãã«ãŒãã§Areasãã©ã«ããŒãäœæããå¿ èŠããããŸããäœæãããåãã©ã«ããŒã¯åå¥ã®ãšãªã¢ã«ãªããŸãã å³ 5ãã®ãããªãã©ã«ããŒã¯ããã©ãŒã©ã ãšã¹ãã¢ã§ãã ãããã§ãã³ã³ãããŒã©ãŒãšãã¥ãŒçšã®ã³ã³ãããŒã©ãŒãšãã¥ãŒã®ãã©ã«ããŒãäœæããåã®ã»ã¯ã·ã§ã³ã§è¡ã£ãã®ãšåãæ¹æ³ã§ããããå®è£ ããå¿ èŠããããŸãã ãªãŒãžã§ã³ãã©ã«ããŒããšã«ãAreaRegistrationã¯ã©ã¹ã®å®è£ ã䜿çšããŠRoutes.csãã¡ã€ã«ãäœæããå¿ èŠãããããšã«æ³šæããŠãã ããã Global.asaxã¯ãAreaRegistration.RegisterAllAreasïŒïŒåŒã³åºããè¿œå ããŠæŽæ°ããå¿ èŠããããŸãã ãã®åŸãããã€ãã®ãããžã§ã¯ãé åãæã€ãœãªã¥ãŒã·ã§ã³ã«äŒŒããããžã§ã¯ããåãåããŸãã
ãšãªã¢ã«åºã¥ããŠåäžã®ãããžã§ã¯ããéçºããããšãšãããã€ãã®ãããžã§ã¯ããšãªã¢ãæã€ãœãªã¥ãŒã·ã§ã³ãéçºããããšã®çŽ æŽãããéãã¯ããšãªã¢ã«åºã¥ããŠåäžã®ASP.NET MVCãããžã§ã¯ããäœæããå Žåããããžã§ã¯ãéã®äŸåé¢ä¿ãåŠçããå¿ èŠããªãããããããžã§ã¯ããã¡ã€ã«ãå€æŽããå¿ èŠããªãããšã§ãã äžè¬ã«ãããã«ããããšãªã¢ã䜿çšãããœãªã¥ãŒã·ã§ã³ã®äœæãå€å°ç°¡åã«ãªããŸãã
æ©èœé åã¯ãããŸããŸãªéšåã®ããžãã¯ãè€éãªãªããžã§ã¯ãïŒå€§èŠæš¡ãœãªã¥ãŒã·ã§ã³ã®é åïŒã«åå²ã§ãã䟿å©ãªã¡ã«ããºã ã§ãã ãœãªã¥ãŒã·ã§ã³ã§ã®é åã®è¡šçŸæ¹æ³ãéžæã§ããŸããè€æ°ã®ãããžã§ã¯ãã«åºã¥ããŠããŸãã¯1ã€ã®ãããžã§ã¯ãã®ã¿ã«åºã¥ããŠã ãããã«ããŠãããšãªã¢ã®äœæã¯é£ãããªããã¢ããªã±ãŒã·ã§ã³å ã®ç°çš®æ©èœãç°¡åã«åé¢ã§ããŸãã
è¿œå ïŒèæ ®ãããææ³ãåãããœãªã¥ãŒã·ã§ã³ãœãŒã¹ã³ãŒãã¯ã ããããããŠã³ããŒãã§ããŸã ïŒVisual Studio 2010 Beta 2ãå¿ èŠã§ãïŒã è€æ°ã®ãããžã§ã¯ããšãªã¢ãå«ããœãªã¥ãŒã·ã§ã³ã§ãšãªã¢ã«åãæ¿ãããšãã«404ãçºçããå Žåã¯ã2ã€ã®ãããžã§ã¯ããšãªã¢ãåã³ã³ãã€ã«ããŸãã