在Blazor中设置启动页面

时间:2019-07-03 19:13:08

标签: 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?}");
});

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

public void ConfigureServices(IServiceCollection services)
{
}

 public void Configure(IComponentsApplicationBuilder app)
{
     app.AddComponent<App>("app");
}

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

index.cshtml中只有一行代码:

@page "/"

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

我看过很多地方,并了解Blazor是“实验性的”。感觉像我正在努力改变这种简单的事情。

4 个答案:

答案 0 :(得分:6)

只需将@page“ /”放在您要默认的页面顶部。从Index.razor中删除@page“ /”

@page "/"
@page "/fetchdata"

答案 1 :(得分:0)

您应该使用Blazor的最新预览创建Blazor客户端(托管)。

在Server项目的Configure方法中,此代码是:

app.UseEndpoints(endpoints =>
            {
                endpoints.MapDefaultControllerRoute();
                endpoints.MapFallbackToClientSideBlazor<Client.Startup>("index.html");
            });

将“ index.html”更改为“ home.html”

请注意,不再使用.cshtml扩展名。改用.razor。

希望这对您有帮助...

答案 2 :(得分:0)

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

@page "/"

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

@page "/index"

答案 3 :(得分:0)

这就是我们最终要做的(好或坏)... 通过大量测试,我们发现cshtml文件中的以下代码行引起了一个错误:

@inject Microsoft.AspNetCore.Blazor.Services.WebAssemblyUriHelper UriHelper

删除此行后,我们通过更改以下内容解决了另一个错误: 这=

// Create list of clients
List<Clients> clientList = new List<Clients>();

到此=

// Create list of clients
List<CWBlah.Shared.Models.Clients> clientList = new `List<CWBlah.Shared.Models.Clients>();`

所以,这似乎是一个范围界定的问题,尽管我不清楚为什么。当我将@using指令添加到页面顶部时,代码似乎没有“监听”该指令。我希望@using CWBlah.Shared.Models将允许我只使用Clients而不是对整个变量进行范围界定。 我们最终没有执行重定向,但最终将所有“仪表板”逻辑都放入了“ Index.cshtml”。