ASP.NET Web Pages (Razor) FAQ

by Tom FitzMacken

Note

WebMatrix is no longer recommended as an integrated development environment for ASP.NET Web Pages. Use Visual Studio or Visual Studio Code.

This article lists some frequently asked questions about ASP.NET Web Pages (Razor) and WebMatrix.

Software versions used in the tutorial

  • ASP.NET Web Pages (Razor) 3
  • Visual Studio 2013
  • WebMatrix 3

For questions about errors and other issues, see the ASP.NET Web Pages (Razor) Troubleshooting Guide.

What's the difference between ASP.NET Web Pages, ASP.NET Web Forms, and ASP.NET MVC?

All three are ASP.NET technologies for creating dynamic web applications:

  • ASP.NET Web Pages focuses on adding dynamic (server-side) code and database access to HTML pages, and features simple and lightweight syntax.
  • ASP.NET Web Forms is based on a page object model and traditional window-type controls (buttons, lists, etc.). Web Forms uses an event-based model that's familiar to those who've worked with client-based (Windows forms) development.
  • ASP.NET MVC implements the model-view-controller pattern for ASP.NET. The emphasis is on "separation of concerns" (processing, data, and UI layers).

All three frameworks are fully supported and continue to be developed by the ASP.NET team. In general, the choice of which framework to use depends on your background and experience with ASP.NET.

ASP.NET Web Pages in particular was designed to make it easy for people who already know HTML to add server processing to their pages. It's a good choice for students, hobbyists, people in general who are new to programming. It can also be a good choice for developers who have experience with non-ASP.NET web technologies.

Do I need WebMatrix in order to work with Web Pages?

No. WebMatrix is no longer recommended as an integrated development environment for ASP.NET Web Pages. Use Visual Studio or Visual Studio Code.

If you don't want to use either Visual Studio or Visual Studio Code, you can install the component products individually using Microsoft Web Platform Installer. You need the following products:

  • Microsoft .NET Framework 4.5
  • ASP.NET MVC 5 (which installs the ASP.NET Web Pages framework as well)
  • IIS Express (the web server)
  • Microsoft SQL Server Compact 4.0 (the database)

You can use a text editor to edit .cshtml (or .vbhtml) pages.

Managing SQL Server Compact databases (.sdf files) without a tool is a bit harder. Visual Studio containds tools for managing .sdf databases. You can also run SQL commands in code to perform many SQL Server management tasks.

To test .cshtml pages without using an integrated development environment (IDE), you can deploy them to a live server. (See Can I deploy an ASP.NET Web Pages site without using WebMatrix?)

Running IIS Express without using an IDE

If you install IIS Express on your computer as a web server, you can use that to test the pages. You can run IIS Express from the command line and associate it with a specific port number. You then specify that port when you request .cshtml files in your browser.

In Windows, open a command prompt with administrator privileges and change to C:\Program Files\IIS Express. (For 64-bit systems, use the folder C:\Program Files (x86)\IIS Express.) Then enter the following command, using the actual path to your site:

iisexpress.exe /port:35896 /path:C:\BasicWebSite

You can use any port number that isn't already reserved by some other process. (Port numbers above 1024 are typically free.) For the path value, use the path of the website folder where the .cshtml files are.

After you run this command to set up IIS Express to serve your pages, you can open a browser and browse to a .cshtml file. Use a URL like the following:

http://localhost:35896/default.cshtml

For help with IIS Express command line options, enter iisexpress.exe /? at the command line.

Can I use ASP.NET Web Forms controls on a Web Pages page?

No. Web Forms controls like the CheckBox control, the validation controls, and the GridView control only work in Web Forms pages (.aspx files). These controls require the Web Forms page framework.

Can I deploy an ASP.NET Web Pages site without using WebMatrix?

Yes. You can manually copy website files to a server (typically by using FTP). If you perform a manual copy, you also have to copy the files that support SQL Server Compact (the database). For details, see the blog entry Deploying Web Pages applications without a tool.

Do I have to use the WebSecurity helper to support logins?

No. The SimpleMembership provider that is part of ASP.NET Web Pages is one option. The security providers that are part of ASP.NET (that you might be used to working with in Web Forms) are also available. For example, you can use forms authentication in ASP.NET Web Pages just as you would in Web Forms. For one example of how to use forms authentication, see the Microsoft Support article How To Implement Forms-Based Authentication in Your ASP.NET Application by Using C#.NET. To download a simple example, see ASP.NET version of "Login & Password.

For information about how to use Windows authentication, see the blog post Using Windows authentication in ASP.NET Web Pages.

Does ASP.NET Web Pages support HTML5?

Yes. The pages you create with ASP.NET Web Pages (.cshtml or .vbhtml pages) are essentially HTML pages that also contain code that runs on the server, before the page is rendered. As long as the user's browser supports HTML5, you can use HTML5 elements in a .cshtml or .vbhtml page.

Can I use JavaScript and jQuery with Web Pages?

Absolutely. The pages you create with ASP.NET Web Pages (.cshtml or .vbhtml pages) are just HTML pages with server code in them. Therefore, anything you can do in a normal HTML page by using JavaScript or jQuery you can also do in a .cshtml or .vbhtml page.

The Starter Site template in WebMatrix contains a number of jQuery libraries. If you create a site by using that template, the Scripts folder contains a jQuery core library (jquery-1.6.2.js) and libraries for jQuery validation (jquery.validate.js, etc.).

Here are some blog posts that illustrate ways to use jQuery with ASP.NET Web Pages: