首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >呈现Blazor组件,但没有调用生命周期方法,也不能调用其他方法。

呈现Blazor组件,但没有调用生命周期方法,也不能调用其他方法。
EN

Stack Overflow用户
提问于 2022-03-17 21:35:18
回答 3查看 232关注 0票数 0

我有一个相当标准的Razor项目,我最近在这个项目中引入了Blazor组件。我添加了_Host.cshtml、App.razor和其他要求,以使Blazor正常工作。当我到达一个完全属于Blazor组件的端点时,Blazor组件工作得很好。但是,我希望使用以下内容将Blazor组件嵌入到我当前的.cshtml页面中

代码语言:javascript
复制
@(await Html.RenderComponentAsync<EditorComponent>(RenderMode.Server, new { Id = Model.Id}))

在我的cshtml页面上。这个语法可以很好地呈现组件,但是在我的OnAfterRenderAsync组件中,它不运行任何Blazor生命周期方法(Blazor生命周期方法),甚至不运行类似于返回任务的按钮。

我已经包括了

代码语言:javascript
复制
<script src="~/_framework/blazor.server.js"></script>

在布局页面中元素的末尾。我是不是漏掉了什么东西才能让这件事起作用?

EN

回答 3

Stack Overflow用户

发布于 2022-03-17 23:35:09

我认为您可能需要使用component标记助手。

文档

<component type="typeof(EditorComponent)" render-mode="Server" param-Id=@Model.Id/>

票数 0
EN

Stack Overflow用户

发布于 2022-03-18 16:28:02

由于您没有提供太多的代码,所以我构建了这段代码来尝试重现您的问题。

我不能:它能像我所期望的那样起作用。因此,除非上述任何一个答案解决了您的问题,否则您将需要提供更多的代码。

起始点Blazor服务器模板。

新剃须刀页面- _Test.cshtml

代码语言:javascript
复制
@page "/Test"
@namespace BlazorApp8.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
    Layout = "_Layout";
}
<h1>Counter in a Page</h1>
<div class="m-2 p-2">
@(await Html.RenderComponentAsync<Counter>(RenderMode.Server, new { Starter = 6}))
</div>

更新Counter.razor以接受参数。

代码语言:javascript
复制
    [Parameter] public int Starter { get; set; } = 0;

    protected override Task OnInitializedAsync()
    {
        currentCount = this.Starter;
        return base.OnInitializedAsync();
    }

运行并导航到/Test

我得到计数器页面,OnInitialized将初始计数设置为6,单击按钮会增加计数器。

票数 0
EN

Stack Overflow用户

发布于 2022-03-18 23:15:08

将_Layout.cshtml中的blazor部分替换为=>

代码语言:javascript
复制
<head>
...


<base href="~/"/>
</head>
...
   
<script src="_framework/blazor.server.js" autostart="false" ></script>
<script>
    Blazor.start({
        configureSignalR: function(builder) {
            builder.withUrl("_blazor");
        }
    });
</script>
...

确保检查您的web控制台输出。很可能会抛出一个错误。这是从我制作的每个应用程序的每个区域的每一个布局中提取出来的。我享受过模板化的微ui体验。Dotnet真的使通过模板来扩展您自己的设计变得轻而易举。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71519303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档