在 Blazor 中设置启动页面

Pet*_*Bal 18 routing razor-pages blazor

我的 Blazor 应用程序中的启动页面是 Index.cshtml。我想将启动页面更改为主页,即我的 Home.cshtml。
我正在使用 vs2019,ASPNET CORE Blazor (0.9.0-preview3-19154-020)。

Blazor Serverside 在 Startup.cs 中有路由,我认为它是针对服务的,而不是针对页面的……并且保留为通过创建新的 Blazor 项目生成的。

app.UseMvc(routes =>
{
   routes.MapRoute(name: "default", template: "{controller}/{action}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

客户的启动具有(由新的 Blazor 项目生成):

public void ConfigureServices(IServiceCollection services)
{
}

 public void Configure(IComponentsApplicationBuilder app)
{
     app.AddComponent<App>("app");
}
Run Code Online (Sandbox Code Playgroud)

我是否需要以某种方式在客户端 startup.cs 中注册路由?

index.cshtml 只有一行代码:

@page "/"
Run Code Online (Sandbox Code Playgroud)

如何将我的“启动”页面从 Index.cshtml 更改为 Home.cshtml?

我看过很多地方,都知道 Blazor 是“实验性的”。感觉就像我正在努力改变这么简单的东西。

Mik*_*ind 15

复制@page包含路由模板的指令:

@page "/"
Run Code Online (Sandbox Code Playgroud)

Index.cshtml文件到Home.cshtml文件,然后删除Index.cshtml文件,或为其@page指令提供不同的路由模板,例如

@page "/index"
Run Code Online (Sandbox Code Playgroud)


Zeu*_*eus 13

只需将@page "/" 放在您希望成为默认页面的顶部即可。从 Index.razor 中删除 @page "/"

@page "/"
@page "/fetchdata"
Run Code Online (Sandbox Code Playgroud)


cal*_*san 10

您无需在启动时配置路由。路由仅适用于每个剃刀页面。您在 @page 上放置的内容是该 razor 页面的路由路径,例如 Index.razor 路由到根路径“/”。

@page "/"

<h1>Index Page</h1>

@code {
    //Code here..
}
Run Code Online (Sandbox Code Playgroud)

对于不同的 razor 页面使用相同的路由并不是一个好主意,因此,如果您想使用 Home.razor 页面上的根路径,请确保将 Index.razor 更改为不同的路由。

如果您想要的是重定向,那么您可以在 Index.razor 上执行以下操作,而不是在www.yourdomain.com上加载您的网站,而是在www.yourdomain.com/home上加载您的网站

@page "/"
@inject NavigationManager NavManager

<h1>Index Page</h1>

@code {
    protected override void OnInitialized()
    {
        NavManager.NavigateTo("/home");
    }
}
Run Code Online (Sandbox Code Playgroud)

这假设您的 Home.razor 上也有以下路由

@page "/home"

<h1>Index Page</h1>

@code {
    //Code here..
}
Run Code Online (Sandbox Code Playgroud)