Skip to content

IvanRainbolt/AddRazorPagesToMVC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Add Razor Pages support to a .Net Core MVC Project

I wanted to take a default asp.net core MVC project in Visual Studio and then see if I could added Razor pages support and use them both.

I created an MVC project and compared it to a new razor project. Using insight from a stack overflow article "How to extend an ASP.NET Core MVC project by Razor Pages?", I was able to successfully do just that.

Here is how

Using Visual Studio

  • Create a new Project Create a new Project

  • Choose ASP.NET Core Web App Choose ASP.NET Core Web App

  • Name the project and solution Name the project and solution

  • Choose the MVC option Choose the MVC option

The folder structure of the result:

MVC folder structure

Do F5 (or CTRL+F5) and you get the standard MVC rendered web pages and web app. Default MVC webapp

  • Add a new folder to the project and name it Pages This is a Razor convention. Other helpful Razor information at the MS Docs site. enter image description here

  • Add the line services.AddRazorPages(); in

public void ConfigureServices(IServiceCollection services)

enter image description here

  • Add the line endpoints.MapRazorPages(); to
app.UseEndpoints(endpoints => 

in

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

enter image description here

At this point, a Razor page can be added and can be navigated to:

  • Add a new Razor page enter image description here results in: enter image description here basic page code: enter image description here rendered view: enter image description here

Layout

So now one may wish to use the existing layout options with the new razor pages.

  • Copy the _ViewStart.cshtml file from the >Views folder to the >Pages folder. enter image description here

That will result in the following rendered html: enter image description here

IF you do not copy the _ViewStart.cshtml file to the >Pages folder, you CAN selectively apply the layout to a individual Razor files by adding the tag to page:

enter image description here

Navigation

MVC

<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>

vs Razor

<a class="nav-link text-dark" asp-area="" asp-page="/HelloWorld">Hello Razor</a>

enter image description here

github

I create this for my own reference and hopefully others will also find it helpful.

[EXTERNAL REFERENCES] https://dev.to/ivanrainbolt/add-razor-pages-support-to-a-net-core-mvc-project-1j54

About

Add Razor Pages support to a .Net Core MVC Project *

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published