
ç§ã®ããŒã ãåãçµãã§ãããããžã§ã¯ãã®1ã€ã¯ãASP.NETã®æ°ãããã¬ãŒã³ããŒã·ã§ã³ãšã³ãžã³ã§ããã
ASP.NET MVCã¯ãåžžã«ããã¬ãŒã³ããŒã·ã§ã³ãšã³ãžã³ãã®æŠå¿µããµããŒãããŠãããå®éã«ã¯ãããŸããŸãªãã³ãã¬ãŒãæ§æã®éžæãå®è£ ãã亀æå¯èœãªã¢ãžã¥ãŒã«ã§ãã ä»æ¥ãASP.NET MVCã®æšæºãã¬ãŒã³ããŒã·ã§ã³ãšã³ãžã³ã¯ãASP.NET Webãã©ãŒã ãšåæ§ã®ãã¡ã€ã«-.aspx / .ascx / .masterã䜿çšããŠããŸãã ä»ã®äžè¬çãªASP.NET MVCãã¬ãŒã³ããŒã·ã§ã³ãšã³ãžã³-Sparkããã³NHamlããããŸãã
ç§ãã¡ãåãçµãã§ããæ°ãããã¬ãŒã³ããŒã·ã§ã³ãšã³ãžã³ã¯ããã³ãã¬ãŒãã³ãŒãã«éç¹ã眮ããŠHTMLã³ãŒããçæããããã«æé©åãããŠããŸãã ãã®ãšã³ãžã³ã®ã³ãŒãåã¯ãRazorãã§ãæåã®ããŒã¿çããŸããªãå©çšå¯èœã«ãªããŸãã
éçºç®æš
ãããã¿ã€ããéçºããRazorãè©äŸ¡ããŠããéã«ãããã€ãã®éèŠãªç®æšãç¹å®ããŸããã
- ã³ã³ãã¯ãã§è¡šçŸåè±ãã§æè» ïŒRazorã¯ããã¡ã€ã«ã§ã®äœæ¥ã«å¿ èŠãªãããŒããŒãã®è² è·ãã軜æžããè¿ éã§æè»ãªããã°ã©ãã³ã°ããã»ã¹ãæäŸããŸãã ã»ãšãã©ã®ãã³ãã¬ãŒãæ§æãšç°ãªããHTMLã§ãµãŒããŒåŽã®ã³ãŒããããã¯ãæ瀺çã«å®çŸ©ããããã«ã³ãŒãã®æžã蟌ã¿ãäžæããå¿ èŠã¯ãããŸããã ããŒãµãŒã¯ãã³ãŒãã«åºã¥ããŠãããè¡ãã®ã«ååã¹ããŒãã§ãã å ¥åãç°¡åã§æ¥œããã³ã³ãã¯ãã§è¡šçŸåè±ããªæ§æãåŸãããŸãã
- ç¿åŸãç°¡åïŒRazorã¯ç¿åŸã容æã§ãæå°éã®åŽåã§çæéã§çç£æ§ãé«ããããšãã§ããŸãã æ¢åã®ããã°ã©ãã³ã°èšèªãšHTMLã¹ãã«ããã¹ãŠäœ¿çšããŸãã
- æ°ããèšèªã§ã¯ãããŸãã ïŒRazorã®æ°ããåœä»€åèšèªã«åºã¥ããŠããªããã¹ãæå³çã«éžæããŸããã 代ããã«ãéçºè ãæ¢åã®ã¹ãã«ã䜿çšããŠCïŒ/ VBïŒãŸãã¯å¥ã®èšèªïŒãæäœã§ããããã«ããé©ãã¹ãHTMLæ§ç¯ããã»ã¹ãæäŸãããã³ãã¬ãŒãããŒã¯ã¢ããæ§æãæäŸããèšèªã®éžæã¯ãŠãŒã¶ãŒã«ä»»ããŠããŸãã
- ä»»æã®ããã¹ããšãã£ã¿ãŒã§åäœããŸããRazorã¯ç¹å®ã®ããŒã«ãå¿ èŠãšãããå€ãããã¹ããšãã£ã¿ãŒã§çç£æ§ãçºæ®ã§ããŸãïŒã¡ã¢åž³ã§ãåé¡ãªãåäœããŸãïŒã
- Intellisenseã®ãµããŒã ïŒRazorã¯ç¹å®ã®ããŒã«ãã³ãŒããšãã£ã¿ãŒã«ãã€ã³ãããã«èšèšããããšããäºå®ã«ãããããããVisual Studioã§åªãããµããŒããæäŸããŸãã Visual Studio 2010ããã³Visual Web Developer 2010ã¯ãããã«ã€ã³ããªã»ã³ã¹ã®æŽæ°ãåãåããŸãã
- ãŠããããã¹ã ïŒãšã³ãžã³ã®æ°ããå®è£ ã¯ããã¥ãŒã§ãŠããããã¹ããå®è¡ããæ©èœããµããŒãããŸãïŒã³ã³ãããŒã©ãŒãWebãµãŒããŒãå¿ èŠãšããããŠããããã¹ããããžã§ã¯ãã«é 眮ã§ããŸã-ç¹å¥ãªã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã³ã¯äžèŠã§ãïŒ
éžæãšæè»æ§
ASP.NETã®æ倧ã®æ©èœã¯ãæåéãã³ãŒãã®äžéšã眮ãæããããšã§ãã ç¹å®ã®ã¡ã«ããºã ãããŒãºã«åããªãå Žåã¯ãç°¡åã«å®è£ ã«çœ®ãæããããšãã§ããŸãã
次ã®ããŒãžã§ã³ã§ã¯ãASP.NET MVCã«æ°ãã[è¿œå ]-> [衚瀺]ãã€ã¢ãã°ããã¯ã¹ãè¿œå ãããæ°ãããã¬ãŒã³ããŒã·ã§ã³ãã³ãã¬ãŒããã¡ã€ã«ã®æ§æãéžæã§ããããã«ãªããŸãã ããŒã«ã«ãã·ã³ã«ã€ã³ã¹ããŒã«ãããŠãã䜿çšå¯èœãªãã¬ãŒã³ããŒã·ã§ã³ãšã³ãžã³ãç°¡åã«éžæã§ããŸãã

Razorã¯ãASP.NET MVCã«çŽæ¥çµ±åãããããããªã¹ãã«è¿œå ãããŸãã ãã¹ãŠã®ãã«ããŒã¡ãœãããšã¢ãã«ã¯ãRazorãš.ASPXã®äž¡æ¹ã®ãã¬ãŒã³ããŒã·ã§ã³ãšã³ãžã³ã§äœ¿çšã§ããŸãã
åãã¢ããªã±ãŒã·ã§ã³ãŸãã¯ãµã€ãå ã®ããŸããŸãªãšã³ãžã³ã䜿çšããŠèšè¿°ããããã¬ãŒã³ããŒã·ã§ã³ãã³ãã¬ãŒããçµã¿åãããŠæ¯èŒããæ©äŒããããŸãã ããšãã°ã.aspxã䜿çšããŠããã€ãã®ãã¥ãŒãäœæãã.cshtmlãŸãã¯.vbhtmlïŒããããCïŒããã³VBã®Razorãã¡ã€ã«æ¡åŒµåïŒã䜿çšãããã¥ãŒãšãSparkãŸãã¯NHamlã䜿çšãããã¥ãŒãäœæã§ããŸãã ããã ãã§ãªããå¥ã®ãšã³ãžã³ã§èšè¿°ãããéšåãã¥ãŒã䜿çšããŠã1ã€ã®ãšã³ãžã³ã§ãã¬ãŒã³ããŒã·ã§ã³ãã³ãã¬ãŒããäœæã§ããŸãã ããªãã¯ãã£ããã³ã§ãããå¿ èŠãªãã®ãéžæããŸãã
ãããŒã¯ãŒã«ããšã«ããœãª
Razorã§ã¯ãéçHTMLïŒãŸãã¯ä»»æã®ããã¹ãã³ã³ãã³ãïŒããéå§ãããµãŒããŒåŽã®ã³ãŒããè¿œå ããŠåçHTMLã«ããããšãã§ããŸãã Razorã®äž»ãªèšèšç®æšã®1ã€ã¯ãæè»ãªã³ãŒãã£ã³ã°ããã»ã¹ãæäŸãããµãŒããŒåŽã®ã³ãŒããæå°éã®åŽåã§HTMLããŒã¯ã¢ããã«è¿ éã«çµ±åããããšã§ããã
ç°¡åãªäŸãèŠãããã«ããhello worldãã®äŸãäœæããŠã次ã®ã¡ãã»ãŒãžã衚瀺ããŠã¿ãŸãããã

.ASPXã³ãŒãã䜿çšããå Žåã®å€èŠ³
ASP.NETãšæ¢åã®.ASPXæ§æããŒã¯ã¢ããã䜿çšããŠäžèšã®ãhello worldãã®äŸãæ§ç¯ããå Žåã<ïŒ =ïŒ >ãããã¯ã䜿çšããŠHTMLããŒã¯ã¢ããå ã®ã³ãŒãã®é åãå®çŸ©ããå¿ èŠããããŸãã

ãã®äŸã§ã¯ãã³ãŒãã·ãŒã±ã³ã¹ã®éå§ãšçµäºã«ã³ãŒãã®åé åã«5æåïŒ<ïŒ =ïŒ >ïŒãå¿ èŠã§ãã ãããã®æåã®äžéšïŒç¹ã«ãã»ãšãã©ã®ããŒããŒãã®äžå€®äžéšã«ããïŒ ããŒïŒã¯ç°¡åã«å ¥åã§ããŸããã
Razoræ§æã§ã®å€èŠ³
@èšå·ã䜿çšãããŠããRazorã®ã³ãŒãé åã®å é ã«æ³šç®ããŠãã ããã <%%>ãšã¯ç°ãªããRazorã§ã¯ãã³ãŒãé åãæ瀺çã«éããå¿ èŠã¯ãããŸããã

RazorããŒãµãŒã¯ãã³ãŒãã®é åã§CïŒ/ VBãæå³çã«åæã§ãããããäžèšã®ã³ãŒããããã¯ãæ瀺çã«éããå¿ èŠã¯ãããŸããã Razorã¯ãäžèšã®ã¹ããŒãã¡ã³ããåå¥ã®ã³ãŒãé åãšããŠå®çŸ©ããæé»çã«ããããéããŸãã
ãã®ãããªäºçŽ°ãªããããŒã¯ãŒã«ããã®äŸã§ãã12åã®äœåãªããŒã¹ãããŒã¯ããèªåãæããŸããã ããŒããŒãã§@æåãå ¥åããæ¹ããïŒ æåãå ¥åãããããã¯ããã«ç°¡åã§ãã
ã«ãŒããšãã¹ããããHTML
補åã®ãªã¹ãïŒããã³ããããã®å察ã®äŸ¡æ ŒïŒã衚瀺ããå¿ èŠãããå Žåã®å¥ã®ã±ãŒã¹ãèŠãŠã¿ãŸãããã

.ASPXã䜿çšããŠäŸãäœæãã
ASP.NETãšæ¢åã®.ASPXæ§æããŒã¯ã¢ããã䜿çšããŠäŸãå®è£ ããå Žåãå補åã®<li>èŠçŽ ãå«ã<ul>ãªã¹ããåçã«çæããã³ãŒããå¿ èŠã§ãã

Razorã§ãµã³ãã«ãäœæãã
以äžã«ãRazorã䜿çšããŠåçã®ãã¥ãŒãçæããæ¹æ³ã瀺ããŸãã

@èšå·ã䜿çšããŠforeachã«ãŒããéå§ããã³ãŒããããã¯ãå«ãHTMLã³ã³ãã³ãã®è¡ãå éšã«é 眮ããããšã«æ³šç®ããŠãã ããã RaptorããŒãµãŒã¯ãããã¯å ã®CïŒã®ã»ãã³ãã£ã¯ã¹ãç解ããŠããããã<li>ã³ã³ãã³ããforeachå ã«ãããšå€æããã«ãŒããã¹ãã³ã³ãã³ããšããŠåŠçããŸãã ãŸããçµäºãèªèã}ãforeachãåæ¢ããŸãã
ãŸããRazorã¯ã<li>èŠçŽ å ã®@ p.Nameããã³@ p.PriceåŒããµãŒããŒã³ãŒããšããŠèªèããã«ãŒãã®åãã¹ã«å¯ŸããŠå®è¡ããã®ã«ååã¹ããŒãã§ãã Razorã¯ãHTMLãšã³ãŒãã®çµã¿åããã«åºã¥ããŠã@ p.Nameããã³@ p.Priceã³ãŒãã®é åãèªåçã«éããããšã«æ³šæããŠãã ããã
ãã³ãã¬ãŒãå šäœã«å€ãã®éå§ã©ãã«ãšçµäºã©ãã«ãè¿œå ããå¿ èŠãªãããã®æ¹æ³ã§ã³ãŒããäœæã§ãããããéçºããã»ã¹å šäœãéåžžã«é«éã«ãªããŸãã
ifãããã¯ãšè€æ°è¡ã®åŒ
äžè¬çãªç¶æ³ã®äŸã次ã«ç€ºããŸãã
ifåŒ
foreachã®äŸã®ããã«ãã³ãŒãé åã®éå§/çµäºãæ瀺çã«æå®ããã«ãifåŒïŒãŸãã¯ä»ã®CïŒãŸãã¯VBèšèªæ§é ïŒå ã«ã³ã³ãã³ããé 眮ã§ããŸãã äŸïŒ

è€æ°è¡ã®åŒ
次ã®ããã«@ { code }ãããã¯ã§ã©ããããããšã«ãããè€æ°è¡ã®ã³ãŒããããŒã¯ã§ããŸãã

å€æ°ã¯è€æ°ã®ãµãŒããŒãããã¯ã³ãŒãã«åå²ã§ããã¡ãã»ãŒãžå€æ°ã¯è€æ°è¡ãããã¯@ {}ã§å®£èšããã ã¡ãã»ãŒãžã³ãŒããããã¯ã§ã䜿çšãããããšã«æ³šæããŠãã ããã .aspxãã¡ã€ã«ã®æ§æ<%%>ããã³<ïŒ =ïŒ >ãšåæ§ã§ãã
è€éãªè¡šçŸ
@ïŒïŒæ§æã䜿çšãããšãè€éãªåŒãé 眮ã§ããŸãã ããšãã°ãäžèšã®ã³ãŒããæžãæããŠã@ãããã¯ïŒã³ãŒãïŒå ã§æååãšæ°åãé£çµã§ããŸãã

ã³ã³ãã³ããšã³ãŒãã®çµ±å
RazorããŒãµãŒã¯ãèšèªã®å€ãã®æ©èœãç¥ã£ãŠããããããŠãŒã¶ãŒã¯ç¬èªã®å®è£ ã«æéãè²»ããããšãªããå®å šã«ä¿¡é Œããããšãã§ããŸãã
HTMLã®é»åã¡ãŒã«ã¢ãã¬ã¹ããã³ãã®ä»ã®@䜿çšãšç«¶åããŸããïŒ
RazorããŒãµãŒã¯ãã»ãšãã©ã®å Žåã@èšå·ãã³ãŒãã§äœ¿çšãããŠãããéçã³ã³ãã³ãã§äœ¿çšãããŠããããå€æã§ããã»ã©ã¹ããŒãã§ãã ããšãã°ã以äžã§ã¯ãã¡ãŒã«ã¢ãã¬ã¹ã®äžéšãšããŠ@èšå·ã䜿çšããŠããŸãã

ãã¡ã€ã«ã®è§£æäžãRazorã¯@èšå·ã®å³åŽã®ã³ã³ãã³ãã解æããCïŒã®ãã®éšåãã³ãŒãïŒCSHTMLãã¡ã€ã«ã®å ŽåïŒãVBïŒVBHTMLãã¡ã€ã«ã®å ŽåïŒããéçããŒã¿ããå€æããããšããŸãã äžèšã®ã³ãŒãã¯ã次ã®HTMLãåºåããŸãïŒé»åã¡ãŒã«ã¢ãã¬ã¹ã¯éçã³ã³ãã³ããšããŠè¡šç€ºããã@ DateTime.Nowã¯ã³ãŒããšããŠå®çŸ©ãããŸãïŒã

ã³ã³ãã³ããã³ãŒããšããŠæå¹ã§ãããéçãšããŠè¡šç€ºããå Žåã¯ã1ã€ã§ã¯ãªã2ã€ã®@@æåãæå®ããã ãã§ååã§ãã
æ·»ä»ã³ã³ãã³ãã®å®çŸ©
if / elseãforeachããŸãã¯ãã®ä»ã®ãããã¯åŒã®äžã«HTMLã³ã³ãã³ããé 眮ããå ŽåãHTMLãŸãã¯XMLèŠçŽ ã®å éšã³ã³ãã³ããã©ããããŠãã³ã³ãã³ãé åã®éå§ãããé©åã«å€æããå¿ èŠããããŸãã
ããšãã°ã以äžã§ã¯ãè€æ°è¡ã®ã³ã³ãã³ããããã¯ïŒäžæ¬åŒ§ãå«ãïŒã<span>ã¿ã°ã§ã©ããããŸããã

ããã«ããã<span>èŠçŽ ãå«ãã¯ã©ã€ã¢ã³ãçšã«æ¬¡ã®ã³ãŒããçæãããŸãã

ãªãã·ã§ã³ã§ãã©ãããŒã¿ã°ãªãã§ã¯ã©ã€ã¢ã³ãçšã«ããŒã¿ãçæããå¿ èŠãããå Žåãåã蟌ã¿ã³ã³ãã³ãã<text>ãããã¯ã§ã©ããã§ããŸãã

ãã®ã³ãŒãã¯ãã¯ã©ã€ã¢ã³ãã«æ¬¡ã®ã³ã³ãã³ããçæããŸããã©ããã³ã°ã¿ã°ããªãããšã«æ³šæããŠãã ããã

HTMLã³ãŒãã£ã³ã°
ããã©ã«ãã§ã¯ã@ãããã¯ã䜿çšããã³ã³ãã³ãã¯ãXSSæ»æã«å¯Ÿããä¿è·ã匷åããããã«èªåçã«HTMLãšã³ã³ãŒããããŸãã
ã¬ã€ã¢ãŠã/ MasterPage-åºæ¬
Webãµã€ããŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®ããŒãžã§çµ±äžãããå€èŠ³ãæã€ããšãéåžžã«éèŠã§ãã ASP.NET 2.0ã¯ããããŒãžãã¹ã¿ãŒãã®æŠå¿µãå°å ¥ããŸãããããã¯ã.aspxããŒãžãŸãã¯ãã³ãã¬ãŒãã䜿çšãããšãã«ãã®çµæãéæããã®ã«åœ¹ç«ã¡ãŸãã Razorã¯ããã¬ã€ã¢ãŠãããŒãžãã䜿çšããŠãã®æŠå¿µããµããŒãããŠããŸããããã«ããããµã€ããã³ãã¬ãŒããå®çŸ©ãããããããã¥ãŒ/ããŒãžãç¶æ¿ã§ããŸãã
ã¬ã€ã¢ãŠãã®æãåçŽãªäŸ
以äžã¯ããSiteLayout.cshtmlããšããååã§ä¿åããã¬ã€ã¢ãŠãããŒãžã®ç°¡åãªäŸã§ãã éçãªHTMLãšåçãªãµãŒããŒã³ãŒããå«ããããšãã§ããŸãã 次ã«ããªã¯ãšã¹ããããURLã®ç¹å®ã®ã³ã³ãã³ãæ¬æã衚瀺ããå Žæã«ããRenderBodyïŒïŒããã«ããŒã¡ãœãããžã®åŒã³åºããè¿œå ããŸãã

次ã«ããHome.cshtmlããšããååã®ãã¬ãŒã³ããŒã·ã§ã³ãã³ãã¬ãŒããäœæããŸãããã®ãã³ãã¬ãŒãã«ã¯ãèŠæ±ãããããŒãžã®ç¹å®ã®æ¬æãäœæããããã«å¿ èŠãªã³ãŒããŸãã¯ã³ã³ãã³ãã®ã¿ãå«ãŸããã¬ã€ã¢ãŠããã³ãã¬ãŒãã«åºã¥ããŠããŸãã

Home.cshtmlãã¡ã€ã«ã®ã³ãŒãã§ãLayoutPageãããããã£ãæ瀺çã«èšå®ããæ¹æ³ã«æ³šæããŠãã ããã ããã¯ããã®ãã¥ãŒã®ã¬ã€ã¢ãŠããšããŠSiteLayout.cshtmlãã³ãã¬ãŒãã䜿çšããããšãæå³ããŸãã Home.cshtmlããã¬ãŒã³ããŒã·ã§ã³ãã³ãã¬ãŒããšããŠæå®ãããããµã€ãã®æšæºã¬ã€ã¢ãŠãã§ã«ã¹ã¿ãã€ãºããããšã«ãããASP.NET MVCã³ã³ãããŒã©ãŒã§ã¬ã€ã¢ãŠããã¡ã€ã«ãçŽæ¥èšå®ããããšãã§ããŸãïŒãã®å Žåã1ã€ã®ãããžã§ã¯ããã¡ã€ã«ã§å®çŸ©ãããã¹ãŠã®ãã¬ãŒã³ããŒã·ã§ã³ãã³ãã¬ãŒããèªåçã«éžæããŸãïŒ
Home.cshtmlããã¬ãŒã³ããŒã·ã§ã³ãã³ãã¬ãŒããšããŠçæãããšãã¬ã€ã¢ãŠããšãµãããŒãžã®ã³ã³ãã³ããçµåããããã®ã³ã³ãã³ããã¯ã©ã€ã¢ã³ãã«éä¿¡ãããŸãã

ã³ã³ãã¯ãã§ã¯ãªãŒã³ã§è¡šçŸåè±ããªã³ãŒã
äžèšã®ã³ãŒãã«æ³šç®ãããã¥ãŒ/ããŒãžããã®ã¬ã€ã¢ãŠãã®å®çŸ©ãšãã®äœ¿çšãå°ããããšã«æ³šæããŠãã ããã ã¹ã¯ãªãŒã³ã·ã§ããã®ã³ãŒãã«ã¯ãSiteLayout.cshtmlããã³Home.cshtmlãã¡ã€ã«ã®ãã¹ãŠã®ã³ã³ãã³ããå«ãŸããè¿œå ã®èšå®ãã¿ã°ã¯ãããŸããã ïŒ @ PageïŒ ãã¬ãã£ãã¯ã¹ããã³ãã®ä»ã®ç°ãªãããŒã¯ã¢ãããæå®ãããããããã£ã¯ãããŸããã
ç§ãã¡ã¯ãããªããæžããã³ãŒããæãã³ã³ãã¯ãã§ã·ã³ãã«ãªåœ¢ã§ç¶æããããšããŸãã ãŸãã誰ã§ããµãŒãããŒãã£ã®ããã¹ããšãã£ã¿ãŒã§ãã¡ã€ã«ãéããã³ãŒããå€æŽã§ããããã«ããããšèããŠããŸãã è¿œå ã®ã³ãŒãçæãã€ã³ããªã»ã³ã¹ã¯å¿ èŠãããŸããã
ã¬ã€ã¢ãŠã/ MasterPage-亀æå¯èœãªéšåãè¿œå
ããŒãžã¬ã€ã¢ãŠãã¯ãç¬èªã®ã³ã³ãã³ãã§ãã¥ãŒãå€æŽã§ããããŸããŸãªãã»ã¯ã·ã§ã³ããå éšã§å®çŸ©ããæ©èœããµããŒãããŠããŸãã ããã«ãããã¬ã€ã¢ãŠãããŒãžã®ã³ã³ãã³ãã®æç¶çãªã»ã¯ã·ã§ã³ãç°¡åã«å€æŽ/å ¥åã§ãããµã€ãã®ã¬ã€ã¢ãŠãã®æè»æ§ãåäžããŸãã
ããšãã°ãSiteLayout.cshtmlã«æ»ãããã¥ãŒãå€æŽã§ããã¬ã€ã¢ãŠãå ã®2ã€ã®ã»ã¯ã·ã§ã³ãå®çŸ©ã§ããŸãã ãããã®éšåããã¡ãã¥ãŒãããã³ãããã¿ãŒããšåŒã³ãRenderSectionïŒïŒãã«ããŒã«optional = trueãã©ã¡ãŒã¿ãŒãæž¡ãããšã§èšå ¥ããªãã·ã§ã³ã§ããããšã瀺ããŸãïŒããã«ã€ããŠã¯ãæ¢ã«èª¬æããCïŒã®æ°ãããªãã·ã§ã³ãã©ã¡ãŒã¿ãŒã䜿çšããŠè¡ããŸãïŒ

2ã€ã®ã»ã¯ã·ã§ã³ã¯ããªãã·ã§ã³ããšããŠããŒã¯ãããŠãããããHome.cshtmlãã¡ã€ã«ã§ããããå®çŸ©ããå¿ èŠã¯ãããŸããã ç§ã®ãµã€ãã¯ãããšã圌ããããã«ããªããŠããããŸãæ©èœãç¶ããŸãã
Home.cshtmlã«æ»ã£ãŠãMenuãšFooterã®ç¬èªã®éšåã宣èšããŸãããã 以äžã®ã¹ã¯ãªãŒã³ã·ã§ããã«ã¯ããã¹ãŠã®Home.cshtmlã³ãŒããå«ãŸããŠããŸãããä»ã«ã¯äœãå¿ èŠãããŸããã ãã ããLayoutPageã®èšå®ãã°ããŒãã«ã¬ãã«ã«ç§»åããããããããã¯ããã«ãããŸããã

ç¬èªã®ã»ã¯ã·ã§ã³ã¯ããã¡ã€ã«ã§å®£èšããã@sectionãããã¯ã䜿çšããŠãã¡ãã¥ãŒããšãããã¿ãŒããäžæžãããŸãã ã»ã¯ã·ã§ã³å ã®ãã¡ã€ã³/ããã£ãã®å 容ãã©ããããå¿ èŠã¯ãªãã代ããã«æåå圢åŒã®ãŸãŸã«ããããšã決å®ããŸããïŒããã«ãããã¯ãªãã¯æ°ãæžãããã¹ãŠã®ããŒãžã§æ§æãå€æŽããªããŠããã¬ã€ã¢ãŠãããŒãžã«ã»ã¯ã·ã§ã³ãç°¡åã«è¿œå ã§ããŸãïŒ
Home.cshtmlããã¬ãŒã³ããŒã·ã§ã³ãã³ãã¬ãŒããšããŠå床çæãããšãã¬ã€ã¢ãŠããšãµãããŒãžã®ã³ã³ãã³ããçµåãããããŒãžã®2ã€ã®æ°ããéšåãçµ±åãããŠãã¯ã©ã€ã¢ã³ãã«æ¬¡ãè¿ãããŸãã

HTMLãã«ããŒã®ã«ãã»ã«åãšåå©çš
ã¬ã€ã¢ãŠãããŒãžã䜿çšããŠãWebãµã€ãã«äžè²«ããå€èŠ³ãæäŸããæ¹æ³ãæ€èšããŸããã 次ã«ãHTMLãçæããããã®çŽç²ãªã«ãã»ã«åãæäŸããåå©çšå¯èœãªHTMLãã«ããŒã¡ãœãããäœæããæ¹æ³ãèŠãŠã¿ãŸãããããã®ã¡ãœããã¯ããµã€ããŸãã¯è€æ°ã®ç°ãªããµã€ãã§äœ¿çšã§ããŸãã
HTMLãœãããŠã§ã¢ãã«ããŒ
çŸåšãASP.NET MVCã«ã¯ãHTMLçæãã«ãã»ã«åããã³ãŒããããã¯ã§åŒã³åºãããšãã§ãããã«ããŒã¡ãœããããããŸãã ãããŠããããã¯ã³ãŒãã®åœ¢ã§ã®ã¿å®è£ ãããŸãïŒã»ãšãã©ã®å Žåãæ¡åŒµã¡ãœãããšããŠïŒã ASP.NET MVCã§äœæãããæ¢åã®HTMLæ¡åŒµã¡ãœããã¯ãã¹ãŠããRazorãã䜿çšããå Žåã«ãæ©èœããŸãã

HTML宣èšãã«ããŒ
1ã€ã®ã¯ã©ã¹ã®ã³ãŒãã«åºã¥ãHTMLçæã¯æ©èœããŸãããçæ³çã§ã¯ãããŸããã
Razorã®æ©èœã®1ã€ã¯ããã宣èšçãªã¢ãããŒãã䜿çšããŠåå©çšå¯èœãªHTMLãã«ããŒãäœæããç°¡åãªæ¹æ³ã§ãã 以äžã®ããã«ã宣èšåæ§æãã«ã㌠{}ã䜿çšããŠãåå©çšå¯èœãªãã«ããŒã宣èšã§ããããã«ããèšç»ã§ãã

ãããã®ãã«ããŒãå«ã.cshtmlãã¡ã€ã«ãViews \ Helpersãã£ã¬ã¯ããªã«é 眮ããŠããµã€ãã®ãã¥ãŒãŸãã¯ããŒãžã§åå©çšã§ããŸãïŒè¿œå ã®æé ã¯äžèŠã§ãïŒã

ProductListingïŒïŒãã«ããŒãåŒæ°ãšãã©ã¡ãŒã¿ãŒãå®çŸ©ããæ¹æ³ã«æ³šç®ããŠãã ããã å¿ èŠãªãã©ã¡ãŒã¿ãŒãæž¡ãããšãã§ããŸãïŒãªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãŒãNULLå€ãèš±å¯ããã¿ã€ãããžã§ããªãã¯ãªã©ãå«ãïŒã Visual Studioã§ãã®ã³ãŒãããããã°ããããšãã§ããŸãã
éèŠïŒ ãã«ããŒæ§æã¯ãRazorã®æåã®ããŒã¿ããŒãžã§ã³ã§ã¯äœ¿çšã§ããŸãããå°æ¥ã®ããŒãžã§ã³ã§äœ¿çšã§ããããã«ãªãããšãé¡ã£ãŠããŸãã ã³ãŒã圢åŒã®ãã«ããŒã¡ãœããã¯ããã«åäœããŸãã
æååãã¿ãŒã³ããã©ã¡ãŒã¿ãŒãšããŠæž¡ã
Razorã§æäŸãããã1ã€ã®æçšãªïŒãããŠéçŸå®çã«åŒ·åãªïŒæ©äŒã¯ããæååãã³ãã¬ãŒãããã©ã¡ãŒã¿ãŒãè£å©ã¡ãœããã«æž¡ãæ©èœã§ãã ãããã®ãæååãã³ãã¬ãŒããã«ã¯ãHTMLãšã³ãŒãã®äž¡æ¹ãå«ããããšãã§ããè£å©ã¡ãœããã®ãªã¯ãšã¹ãã§åŒã³åºãããšãã§ããŸãã
ãã®æ©èœã®åäœäŸã以äžã«ç€ºããŸããã¯ã©ã€ã¢ã³ãçšã®DataGridãçæããHTMLã®ãã°ãªããããã«ããŒã䜿çšããŸãã

Grid.Renderã¡ãœããã®åŒã³åºãã¯CïŒã§ãã CïŒã®æ°ããååä»ããã©ã¡ãŒã¿ãŒã䜿çšããŠãå³å¯ã«åæå®ãããåŒæ°ãGrid.Renderã¡ãœããã«æž¡ããŸãããã®æ©èœã«ãããã³ã³ãã€ã«æã«instellisenseãšæ€èšŒã䜿çšããŠåŒãå®å šã«å®æããŸãã
åã宣èšãããšãã«æž¡ããformatããã©ã¡ãŒã¿ãŒã¯ãå°æåã®ãã³ãã¬ãŒããã§ãããhtmlãšã³ãŒãã®äž¡æ¹ãå«ãŸããŠããŸãããŸããããŒã¿åœ¢åŒãèªåçšã«ã«ã¹ã¿ãã€ãºããããšãã§ããŸãã ãããŠãæè¯ã®éšåã¯ãã°ãªãããã«ããŒãããªã²ãŒãã¡ãœãããšããŠã©ã€ã³ãã³ãã¬ãŒããåŒã³åºããå¿ èŠãªãšãã«å¿ èŠãªãšãã«åŒã³åºãããšãã§ããããšã§ãã ãã®å Žåãã°ãªããç·ãçæããããããèŠçŽ ãã«æž¡ããã³ã«åŒã³åºããããã³ãã¬ãŒãã䜿çšããŠçµæã衚瀺ã§ããŸãã
ãã®æ©èœã«ããããã匷åãªHTMLãã«ããŒã¡ãœãããéçºã§ããŸãã ã³ãŒãã§ïŒä»æ¥ã®ããã«ïŒå®£èšåãã«ã㌠{}ã¢ãããŒãã䜿çšããŠãããããå®è£ ã§ããŸãã
Visual Studioã§ã®ãµããŒã
åè¿°ããããã«ãRazorã®äž»ãªç®æšã®1ã€ã¯ãããŒã¹ãããŒã¯ã®æ°ãæå°éã«æããããã¹ããšãã£ã¿ãŒã§ã³ãŒããç°¡åã«ç·šéããããšã§ãã æ§æãç°¡æœã§ç°¡æœã§ã·ã³ãã«ãªãã®ã«ããããšããŸããã
ããã«ãããããããRazorã¯ãVisual Studioã§ã³ãŒããç·šéãã䟿å©ãããã¹ãŠåŸãããšãã§ããããã«èšèšãããŠããŸãã Razorãã¡ã€ã«ã®ã€ã³ããªã»ã³ã¹ã§ãHTMLãJavaScriptãCïŒ/ VBã³ãŒããå®å šã«ãµããŒãããŸãã

<li>èŠçŽ å ã®ã@p ãäžã®Productãªããžã§ã¯ãã«å¯ŸããŠã intellisenseãã©ã®ããã«æ©èœãããã«æ³šç®ããŠãã ããã ãœãªã¥ãŒã·ã§ã³ãšã¯ã¹ãããŒã©ãŒã§ã¯ã.aspxãš.cshtmlã®äž¡æ¹ã®ãã¬ãŒã³ããŒã·ã§ã³ãã³ãã¬ãŒãã\ Viewsãã©ã«ããŒã«ååšããããšã«æ³šæããŠãã ããã 1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã§ç°ãªããã¬ãŒã³ããŒã·ã§ã³ãšã³ãžã³ã䜿çšããŠãã©ã®ãããªæ§æã奜ãããäœéšã§ããŸãã
çµè«
ãRazorãã¯ãã³ãŒãæåã®ãã³ãã¬ãŒãã«æ°ãããšã¬ã¬ã³ããªãã¬ãŒã³ããŒã·ã§ã³ãšã³ãžã³ãæäŸãããšèããŠããŸãã ããã°ã©ãã³ã°ããã»ã¹ã¯é«éã§æ¥œãããã®ã«ãªããŸãã æ§æã¯ã³ã³ãã¯ãã§ãããããŒã¹ãããŒã¯ãæžãããªãããããŒã¯ã¢ãããšã³ãŒãã®å¯èªæ§ãåäžãããŸãã ASP.NET MVCã®æ¬¡ã®ããŒãžã§ã³ã§ã¯ããšã³ãžã³ã¯ã·ã¹ãã ã«çµ±åãããŸãã ã¢ããªã±ãŒã·ã§ã³ã®.cshtml / .vbhtmlãã¡ã€ã«ãåé€ããåå¥ã®ããŒãžãšããŠå®è¡ããããšãã§ããŸããããã«ãããASP.NET Webãã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããããšãã§ããŸãã
éå»æ°ãæã«ããã£ãŠãããžã§ã¯ãããã¹ããããã¹ãŠã®éçºè ã¯ãéåžžã«è¯å®çãªã¬ãã¥ãŒãæ®ããŠããŸãã ãããªãã¯ããŒã¿ã¯ã§ããã ãæ©ãæäŸããäºå®ã§ãããã¡ããããæèŠããåŸ ã¡ããŠããŸãã