我的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是“实验性的”。感觉像我正在努力改变这种简单的事情。
答案 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”。