【发布时间】:2020-04-13 04:08:51
【问题描述】:
我有一个现有的 MVC 项目,我正在尝试将 Blazor 集成到其中。为此,我必须从 .NET Core 2.1 升级到 3.1,并在我的启动类中进行一些更改,以使应用程序像以前一样工作。
整理完所有升级内容后,我现在已将集线器添加到我的Configure 启动方法中:
...
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "areas",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllers();
endpoints.MapRazorPages();
endpoints.MapBlazorHub();
});
...和服务器签署 Blazor 服务注册:
...
services
.AddMvc(options =>
{
...
})
.AddRazorOptions(o =>
{
...
})
.AddRazorPagesOptions(options =>
{
...
});
services.AddServerSideBlazor();
最后,我已将 Blazor JS 脚本添加到我的 ~/Pages/Shared/_Layout.cshtml 视图中:
<script src="~/_framework/blazor.server.js"></script>
当组件在视图中时,我正在努力弄清楚新 Razor 组件的 @page 值应该是什么。
这是我的文件夹结构:
Pages 文件夹中的所有内容都是新的。
这里是Index.razor的内容:
@page "/"
<h3>Sales Homepage</h3>
@code {
}
我为@page 路由值尝试了以下方法:
- "/"
- “/索引”
- "/定价/销售/"
- “/定价/销售/指数”
这些都不起作用 - 我只是收到一个找不到页面的错误。
我也不确定应该如何将~/Pages/Shared/_Layout.cshtml 中的现有布局与这些新组件一起使用。
我查看了 Visual Studio 中的脚手架 Blazor 模板项目,还检查了文档,但没有发现这特别有用,因为它都专注于全新的 Blazor 项目。
【问题讨论】:
标签: c# asp.net-core asp.net-core-mvc blazor blazor-server-side