能否在Razor Pages中使用Blazor标签组件并保留原有页面处理方法
答案
这两种实现方式完全可以结合使用,且不会影响你Razor Page原有功能的正常运行。
具体实现逻辑和注意事项如下:
- 你目前使用的静态渲染模式(
render-mode="Static")本身就原生支持Blazor组件的嵌套写法、RenderFragment能力,不需要依赖Blazor的交互运行时就能正常工作。 - 你不需要修改原有Razor Page的任何业务代码,
OnGet()、OnPost()等处理方法可以完全保留,使用逻辑没有任何变化。 - 只需要把你Blazor组件所在的命名空间通过
@using引入到Razor Page中(也可以全局添加到_ViewImports.cshtml里全局生效),就可以直接在Razor Page的任意位置写你示例里的嵌套Blazor标签代码,效果和之前用<component>标签或者Html.RenderComponentAsync()渲染的结果完全一致。 - 只要不给组件额外指定交互渲染模式,所有组件都会以静态HTML的形式输出,不会引入Blazor运行时,也不会对你原有Razor Page的表单、路由等逻辑产生任何影响,完全满足你拆分可嵌套静态组件的需求。
内容的提问来源于stack exchange,提问作者Shadarath
相关产品推荐
相关产品推荐

