【问题标题】:Why can't I use partial view in a razor (blazor) component?为什么我不能在 razor (blazor) 组件中使用局部视图?
【发布时间】:2022-01-06 10:23:33
【问题描述】:
我有一个现有的 ASP.NET MVC 应用程序,其中包含许多局部视图和视图组件。我花了一段时间才意识到你不能在 Razor (blazor) 组件中使用 @Html 和 @Component 助手,从那以后我一直在问为什么?它们只包含静态的、常见的 UI 元素。这是一个巨大的缺点。使用 Blazor 时,局部视图的最佳轻量级替代方案是什么?
我必须为每个视图组件和部分视图制作一个 Blazor 组件吗?
【问题讨论】:
标签:
asp.net-mvc
razor
blazor
partial-views
【解决方案1】:
在 Blazor 中,您有 Razor 组件,它们可以有一个页面指令,因此可以直接从路由访问它们。
一个组件还可以包含使 Razor 组件真正强大的其他组件。
简单地说,Razor 组件取代了 Blazor 世界中的视图组件和部分视图。
最大的问题是您为什么要这样做?
正如评论中提到的,有一些解决方法,但在我看来,这确实是一种 hack,而不是一个很好的解决方案。
但是,如果您在迁移时需要这样做,这是一个简单的解决方案。
【解决方案2】:
Blazor 应用是使用 Razor 组件构建的。组件是用户界面 (UI) 的独立部分,具有处理逻辑以启用动态行为。 组件可以嵌套、重用、在项目之间共享,并在 MVC 和 Razor Pages 应用程序中使用。这就像局部视图。如需更多信息,请参阅Nested components。