{{Short description|Programming syntax for ASP.NET}} {{Infobox software | name = Razor | logo = | screenshot = | caption = | author = [[Microsoft]] | developer = [[.NET Foundation]] | released = {{Start date and age|2010|06}} | latest_release_version = 3.3.0 | latest_release_date = {{Start date and age|2023|10|23}}<ref>{{cite web |title=Microsoft ASP.NET Razor |url=https://www.nuget.org/packages/Microsoft.AspNet.Razor/ |website=[[NuGet]] |access-date=2015-12-03 |archive-date=2022-04-05 |archive-url=https://web.archive.org/web/20220405102339/https://www.nuget.org/packages/Microsoft.AspNet.Razor/ |url-status=live }}</ref> | latest preview version = 4.0.0-rc1 | latest preview date = {{Start date and age|2015|11|18}} | repo = {{URL|https://github.com/aspnet/Razor}}<br />{{URL|https://github.com/aspnet/AspNetWebStack}}<br />{{URL|https://github.com/dotnet/aspnetcore}} | programming language = [[C Sharp (programming language)|C#]], [[Visual Basic .NET|VB.NET]], [[HTML]] | operating system = [[Microsoft Windows]]<ref>{{cite web |title=Introduction to Razor Pages in ASP.NET Core |url=https://learn.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-6.0&tabs=visual-studio |website=learn.microsoft.com |date=27 September 2024 |language=en-us |access-date=30 October 2022 |archive-date=30 October 2022 |archive-url=https://web.archive.org/web/20221030191706/https://learn.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-6.0&tabs=visual-studio |url-status=live }}</ref> | genre = [[Web application framework]] | license = [[Apache License 2.0]]<ref>{{cite web |url=https://github.com/aspnet/Razor/blob/master/LICENSE.txt |title=Razor/LICENSE.txt at master · aspnet/Razor · GitHub |work=GitHub |date=12 October 2022 |access-date=24 June 2019 |archive-date=5 April 2022 |archive-url=https://web.archive.org/web/20220405102339/https://github.com/aspnet/Razor/blob/master/LICENSE.txt |url-status=live }}</ref> | website = {{URL|http://www.asp.net/web-pages}} }} {{Infobox file format | name = Razor file formats | icon = | logo = | extension = <code>.razor</code>, <code>.cshtml</code>, <code>.vbhtml</code> | mime = text/html | magic = | owner = [[Microsoft]] | released = <!-- {{Start date|YYYY|mm|dd|df=yes/no}} --> | latest release version = | latest release date = <!-- {{Start date and age|YYYY|mm|dd|df=yes/no}} --> | genre = | container for = | contained by = | extended from = | extended to = | standard = | free = | url = }}
'''Razor''' is an [[ASP.NET]] programming syntax used to create [[dynamic web page]]s with the [[C Sharp (programming language)|C#]] or [[Visual Basic .NET|VB.NET]] programming languages. Razor was introduced in June 2010<ref name="IntroducingRazor">{{cite web|url=http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx|title=ScottGu's Blog - Introducing "Razor" – a new view engine for ASP.NET|work=asp.net|date=3 July 2010|access-date=8 July 2011|archive-date=10 November 2010|archive-url=https://web.archive.org/web/20101110065355/http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx|url-status=dead}}</ref> and was released for Microsoft [[Visual Studio]] 2010 in January 2011.<ref name="RazorsyntaxSupport">{{cite web|url=http://blogs.msdn.com/b/webdevtools/archive/2011/01/12/how-to-get-razor-syntax-support-in-visual-studio-2010.aspx|title=MSDN Blogs|publisher=Microsoft|work=msdn.com|access-date=2011-07-08|archive-url=https://web.archive.org/web/20120702131534/http://blogs.msdn.com/b/webdevtools/archive/2011/01/12/how-to-get-razor-syntax-support-in-visual-studio-2010.aspx|archive-date=2012-07-02|url-status=dead}}</ref> Razor is a simple-syntax view engine and was released as part of [[ASP.NET MVC|MVC]] 3 and the [[WebMatrix]] tool set.<ref name="RazorsyntaxSupport" />
Razor became a component of AspNetWebStack and then became a part of [[ASP.NET Core]].<ref>{{cite book |last1=Chadwick |first1=Jess |title=Programming Razor: Tools for Templates in ASP.NET MVC or WebMatrix |date=9 September 2011 |publisher=O'Reilly Media, Inc. |isbn=978-1-4493-1716-4 |url=https://books.google.com/books?id=z3QlDSjr0jYC&q=ASP.NET+Razor |language=en}}</ref>
== Design== The Razor syntax is a template markup syntax, based on the C# programming language, that enables the programmer to use an HTML construction workflow.{{clarify|date=June 2013}} Instead of using the ASP.NET Web Forms (.aspx) markup syntax with <code><%= %></code> symbols to indicate code blocks, Razor syntax starts code blocks with an <code>@</code> character and does not require explicit closing of the code-block.
The idea behind Razor is to provide an optimized syntax for HTML generation using a code-focused templating approach, with minimal transition between HTML and code.<ref name=MVC3rve>{{cite web|url=http://www.asp.net/mvc/videos/mvc-3/mvc-3-razor-view-engine|title=MVC 3 - Razor View Engine|author=Jon Galloway|work=The Official Microsoft ASP.NET Site|date=19 February 2020|access-date=31 January 2013|archive-date=19 September 2016|archive-url=https://web.archive.org/web/20160919204009/http://www.asp.net/mvc/videos/mvc-3/mvc-3-razor-view-engine|url-status=live}}</ref> The design reduces the number of characters and keystrokes, and enables a more fluid coding workflow by not requiring explicitly denoted server blocks within the HTML code.<ref name="IntroducingRazor" /> Other advantages that have been noted:<ref name=pro1>{{cite web|url=https://stackoverflow.com/questions/1451319/asp-net-mvc-view-engine-comparison|title=ASP.NET MVC View Engine Comparison|work=stackoverflow.com|access-date=2016-07-25|archive-date=2022-04-24|archive-url=https://web.archive.org/web/20220424123647/https://stackoverflow.com/questions/1451319/asp-net-mvc-view-engine-comparison|url-status=live}}</ref> * Supports [[IntelliSense]] – statement completion support * Supports "layouts" – an alternative to the "master page" concept in classic [[ASP.NET Web Forms|Web Forms]] (.aspx) * [[Unit testing|Unit testable]]
== See also == {{Portal|Free and open-source software}} * [[Blazor]]
== References == <!--- See http://en.wikipedia.org/wiki/Wikipedia:Footnotes on how to create references using <ref></ref> tags which will then appear here automatically --> {{Reflist}}
== External links == {{Wikibooks|.NET Development Foundation}} * [https://docs.microsoft.com/en-us/aspnet/core/razor-pages/ Introduction to Razor Pages in ASP.NET Core] at [[Microsoft Docs]] ** [https://docs.microsoft.com/en-us/aspnet/web-pages/ ASP.NET Web Pages] at [[Microsoft Docs]] * [https://docs.microsoft.com/en-us/aspnet/core/mvc/overview Overview of ASP.NET Core MVC] at [[Microsoft Docs]] ** [https://docs.microsoft.com/en-us/aspnet/mvc/ ASP.NET MVC] at [[Microsoft Docs]] * {{GitHub|aspnet/Razor}} (archived). Current development is held at {{GitHub|dotnet/aspnetcore}}
{{.NET Framework}} {{Microsoft FOSS}} {{Web frameworks}}
[[Category:ASP.NET|Razor]] [[Category:2010 software]] [[Category:Free software programmed in C Sharp]] [[Category:Microsoft application programming interfaces]] [[Category:Microsoft free software]] [[Category:Microsoft Visual Studio]] [[Category:Software using the Apache license]] [[Category:Template engines]] [[Category:Web frameworks]] [[Category:Windows-only free software]]