рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдХреИрд╢рд┐рдВрдЧ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред рдПрдХ рдирдЧреНрди рд╕рд┐рджреНрдзрд╛рдВрдд рдерд╛, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рд╣реИ, рдЗрд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдПрдХ ASP.NET MVC рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдХреЛрдЪрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╡рд╛рд╕реНрддреБ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди
MVC рдореНрдпреВрдЬрд╝рд┐рдХ рд╕реНрдЯреЛрд░ рд▓рд┐рдпрд╛ , рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ
asp.net рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛
рд╣реИ ред рдЖрд╡реЗрджрди рдПрдХ рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЯреЛрдХрд░реА, рд╕рд╛рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдХреА рдЦреЛрдЬ
рддреБрд░рдВрдд рдПрдХ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдпрд╛, рдЬреЛ рдореБрдЦреНрдп рдкреГрд╖реНрда рдЦреЛрд▓рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 60 рдкреГрд╖реНрда рдирд┐рдХрд▓рд╛ (рдореИрдВрдиреЗ рдбрд┐рдмрдЧ рдореЗрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдП)ред рдпрд╣ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИред
рдореБрдЦрдкреГрд╖реНрда рдирд┐рдпрдВрддреНрд░рдХ рдХреЛрдб:
public ActionResult Index() {
рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рдПрдЧреНрд░реАрдЧреЗрдЯ рдХреНрд╡реЗрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛, рдЬрдмрдХрд┐ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЖрдорддреМрд░ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВред
рдЙрд╕реА рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдкрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ - рдЯреЛрдХрд░реА рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рдХреЛрдб _layout.cshtml (рд░реЗрдЬрд░):
<div id="header"> <h1><a href="/">ASP.NET MVC MUSIC STORE</a></h1> <ul id="navlist"> <li class="first"><a href="@Url.Content("~")" id="current">Home</a></li> <li><a href="@Url.Content("~/Store/")">Store</a></li> <li>@{Html.RenderAction("CartSummary", "ShoppingCart");}</li> <li><a href="@Url.Content("~/StoreManager/")">Admin</a></li> </ul> </div>
рдпрд╣ "рдкреИрдЯрд░реНрди" рдЕрдХреНрд╕рд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░, рдЬреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЦреБрд▓рддрд╛ рд╣реИ, рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд▓рд╛рдЧрддреЛрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдЬрдЧрд╣ - рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬрд╛рдирдХрд╛рд░реА рдЬреЛ рдЕрдХреНрд╕рд░ рдмрджрд▓рддреА рд░рд╣рддреА рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдореБрдЦреНрдп рдкреГрд╖реНрда рдзреАрдорд╛ рд╣реИ рдФрд░ HTTP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдмрдирд╛рдирд╛
рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдкреЗрдЬ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред ASP.NET MVC рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рдХреЛрдб _layout.cshtml (рд░реЗрдЬрд░):
<div id="header"> <h1><a href="/">ASP.NET MVC MUSIC STORE</a></h1> <ul id="navlist"> <li class="first"><a href="@Url.Content("~")" id="current">Home</a></li> <li><a href="@Url.Content("~/Store/")">Store</a></li> <li><span id="shopping-cart"></span></li> <li><a href="@Url.Content("~/StoreManager/")">Admin</a></li> </ul> </div> <script> $('#shopping-cart').load('@Url.Action("CartSummary", "ShoppingCart")'); </script>
рдирд┐рдпрдВрддреНрд░рдХ рдХреЛрдб рдореЗрдВ:
NoCache рдХреИрд╢рд┐рдВрдЧ рдореЛрдб рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Ajax рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдкрдиреЗ рдЖрдк рд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рд╕реЗ рдЖрд╡реЗрджрди рдХреЗрд╡рд▓ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ - рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 52 рдкреГрд╖реНрдареЛрдВ, рдЯреЛрдХрд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ajax рдЕрдиреБрд░реЛрдз рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред
рд╣рдордиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдУрд╡рд░рдХреНрд▓реЙрдХ рдХрд┐рдпрд╛
рдЕрдм рдЖрдк рдЖрд▓рд╕реА рдХреИрд╢рд┐рдВрдЧ рдкреЗрдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЦреНрдп рдкреГрд╖реНрда рд╣реА рд╣рд░ рдЬрдЧрд╣ рдФрд░ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЖрдБрдХрдбрд╝реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИрдВ)ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмрд╕ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐ рд╕реЗ OutputCache рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
[OutputCache(Location=System.Web.UI.OutputCacheLocation.Any, Duration=60)] public ActionResult Index() {
рдЧрддрд┐рд╢реАрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ web.config рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
<system.webServer> <urlCompression dynamicCompressionBeforeCache="false"/> </system.webServer>
рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рд╡реИрд░реА: * рд╣реЗрдбрд░ рдХреЛ рди рджреЗ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдиреЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 197 рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣реЛрдо \ рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рдХреЛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рд╕рд░реНрд╡рд░ рдХреИрд╢ рд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рдерд╛, рдпрд╛рдиреА рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдиреЗ рдЯреЛрдХрд░реА рдореЗрдВ рдЖрдЗрдЯрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреА рдЧрддрд┐ рдХреЛ рдорд╛рдкрд╛ред
рдЯреЛрдХрд░реА рдХреЗ рдХрд╛рдо рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреЛрдХрд░реА рдореЗрдВ рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдХрд╛рд░реНрдЯ.рдЧреЗрдЯрдХрд╛рдЙрдВрдЯ () рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ asp.net рдХреИрд╢ рдореЗрдВ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреИрд╢ рдХреЛ рдлреНрд▓рд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд░рд╛рдЗрдЯ-рдереНрд░реВ рдХреИрд╢ рд╣реЛрдЧрд╛ред
рдПрдорд╡реАрд╕реА рдореНрдпреВрдЬрд┐рдХ рд╕реНрдЯреЛрд░ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреА рдХреИрд╢рд┐рдВрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ 3 рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдЯреЛрдХрд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдкрдХреЛ рдХреИрд╢ рдмреБрд╢ рдХреЛ рдХреЗрдВрджреНрд░реАрдп рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд \ рд╕рджрд╕реНрдпрддрд╛ рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐:
[HttpGet] public ActionResult CartSummary() { var cart = ShoppingCart.GetCart(this.HttpContext); var cacheKey = "shooting-cart-" + cart.ShoppingCartId; this.HttpContext.Cache[cacheKey] = this.HttpContext.Cache[cacheKey] ?? cart.GetCount(); ViewData["CartCount"] = this.HttpContext.Cache[cacheKey]; return PartialView("CartSummary"); }
рдЯреЛрдХрд░реА рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рджреЛ рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
var cacheKey = "shooting-cart-" + cart.ShoppingCartId; this.HttpContext.Cache.Remove(cacheKey);
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 263 рдЕрдиреБрд░реЛрдз рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ 4 рдЧреБрдирд╛ рдЕрдзрд┐рдХред
HTTP рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЕрдВрддрд┐рдо рддрд╛рд░ рдЯреЛрдХрд░реА рдореЗрдВ рдорджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП HTTP рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:
- рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реАрд░реНрд╖рдХреЛрдВ рдореЗрдВ рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ
- рдЗрдлрд╝-рдореЙрдбрд┐рдлрд╝рд╛рдЗрдб-рдЪреВрдВрдХрд┐-рдирд┐рд╡реЗрджрди рд╣реЗрдбрд░ (рд╕рд╢рд░реНрдд GET)
- рдпрджрд┐ рдореВрд▓реНрдп рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ рддреЛ рдХреЛрдб 304 рджреЗрдВ
рдЪрд▓рд┐рдП рдЕрдВрдд рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╕рдВрд╢реЛрдзрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП ActionResult рдХреЛрдб:
public class NotModifiedResult: ActionResult { public override void ExecuteResult(ControllerContext context) { var response = context.HttpContext.Response; response.StatusCode = 304; response.StatusDescription = "Not Modified"; response.SuppressContent = true; } }
рд╕рд╢рд░реНрдд GET рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд рд╕реНрдерд╛рдкрдирд╛ рдЬреЛрдбрд╝реЗрдВ:
[HttpGet] public ActionResult CartSummary() {
рдмреЗрд╢рдХ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд░рдЦрд░рдЦрд╛рд╡ рдФрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рддреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдорд┐рдирдЯ рд░рди рдореЗрдВ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 321 рдкреГрд╖реНрдареЛрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб, 5.3 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИред
Zalkyuchenie
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЖрдкрдХреЛ рдХреИрд╢рд┐рдВрдЧ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ HTTP рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рдПрдХ рдорд╛рдореВрд▓реА рд▓реЛрд╣реЗ рдкрд░ рднрд╛рд░реА рднрд╛рд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред