Makow
Makow

Reputation: 191

How to change starting page, using Razor Pages in .NET Core 2?

I wanted to set my starting page to /Members/Index.

When I was using MVC, I configured it as following:

app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Members}/{action=Index}/{id?}");
            });

But now I'm trying new Razor Pages approach, and now Members is folder and Index is Razor Page. How to set this page in folder as starting one?

I can add Index page in root directory and make redirect there, but I was looking for something cleaner.

Upvotes: 19

Views: 18695

Answers (4)

osynavets
osynavets

Reputation: 1520

I am using this way

services.AddMvc()
    .AddRazorPagesOptions(options => 
    {
        options.AllowAreas = true;
        options.Conventions.AddAreaPageRoute("Home", "/Index", "");
    });

My folder structure is:

 - Area
   |_ Home
      |_ Pages
         |_ Index.cshtml
   |_ //other areas

Upvotes: 2

AllanB
AllanB

Reputation: 161

Add the following to your ConfigurationServices function in Startup.cs

 services.AddMvc().AddRazorPagesOptions(options =>
        {
            options.Conventions.AddPageRoute("/Members/Index", "");
        });

If you have another index page you'll probably need to delete or rename it.

Upvotes: 14

Brad Patton
Brad Patton

Reputation: 4205

For testing purposes you can change the start page by going to the Properties window for the web project and select the Debug tab. On the 'Launch browser' line enter the starting path

enter image description here

Upvotes: 14

Alsamil Mehboob
Alsamil Mehboob

Reputation: 404

Try following code at AppStart->RouteConfig.cs :

 routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}",
            defaults: new { controller = "Members", action = "Index"}
        );

Upvotes: -1

Related Questions