如何使用.NET Core 2中的Razor Pages更改起始页?

时间:2017-09-08 13:32:50

标签: asp.net-mvc asp.net-core-2.0 razor-pages

我想将我的起始页面设置为/ Members / Index。

当我使用MVC时,我将其配置如下:

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

但是现在我正在尝试新的Razor Pages方法,现在会员是文件夹而索引是Razor Page。 如何在文件夹中将此页面设置为起始页?

我可以在根目录中添加索引页面并在那里进行重定向,但我正在寻找更清洁的东西。

5 个答案:

答案 0 :(得分:6)

出于测试目的,您可以通过转到Web项目的“属性”窗口来更改起始页面,然后选择“调试”选项卡。在“启动浏览器”#39; line输入起始路径

enter image description here

答案 1 :(得分:1)

在Startup.cs的ConfigurationServices函数中添加以下内容

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

如果您还有另一个索引页,则可能需要删除或重命名它。

答案 2 :(得分:1)

从ASP.NET Core 2.1开始指定“开始”页面的最简单方法是在cshtml文件中使用@page指令。 this blog post中对此功能进行了说明,指令官方文档为this section on Razor Page syntax

例如,将路线指定为“ / ”会使该页面成为默认页面:

@page "/"
@model sample.Pages.startModel
@{
    ViewData["Title"] = "Start Page";
}

<h2>Start Here!</h2>
...

答案 3 :(得分:1)

我正在使用这种方式

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

我的文件夹结构是:

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

答案 4 :(得分:0)

AppStart->RouteConfig.cs处尝试以下代码:

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