【问题标题】:c# blazor server - pass class object from child to parentc# blazor server - 将类对象从子级传递给父级
【发布时间】:2021-11-01 18:40:21
【问题描述】:



你好

我正在尝试在 blazor 服务器中制作可重用组件

一个列表框,我在其中传递一个 id(它用于填充自身,然后将用户选择的内容传回

我的想法是将ID传递给组件,从父级到子级,效果很好,但我只能从子级返回一个字符串,我想发回一个类对象,是否可能,我已经尝试了以下




父母

@using Microsoft.AspNetCore.Components.Web

@page "/"

@code {

    private void IwasGivendatabackfromclient(HagClass x)
    {
        string text = x.parChildSet;
        
    }


}


<h1>Hello, world!</h1>

Welcome to your new app.

<HagChild GiveMeDatFromPar="Balls of steel" OnEmployeeDeleted="IwasGivendatabackfromclient"></HagChild>



using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Web;

namespace Blazor_PH_Par_Child.Shared
{
    public class HagClass
    {
        public  string parSentMe { get; set; }
        public string parChildSet { get; set; }

    }
}



儿童

@code {


    [Parameter]
    public string GiveMeDatFromPar { get; set; }

    [Parameter]
    public EventCallback<object> OnEmployeeDeleted { get; set; }

    HagClass x = new HagClass();

    public void Delete_Click()
    {
        x.parChildSet = "test";

        OnEmployeeDeleted.InvokeAsync(x);
        


        }
}


<h3>HagChild</h3>

<button type="button" class="btn btn-danger m-1"
        @onclick="Delete_Click">
    Delete
</button>

<p>hello @GiveMeDatFromPar</p>

【问题讨论】:

    标签: c# blazor parent-child blazor-server-side


    【解决方案1】:

    是的,这是可能的。您可以像这样添加参数

    [Parameter] 
    public EventCallback<MyModel> OnEmployeeDeleted { get; set; }
    

    然后在单击删除按钮后,创建 Mymodel 的项目类型并将其发送回父项

    MyModel model = new(){  .... }
    OnEmployeeDeleted.InvokeAsync(model);
    

    在父页面中,您必须创建获取子数据的函数。

    private void GetDeletedInfo(Mymodel model){}
    

    组件的调用将是

    <HagChild OnEmployeeDeleted="data => GetDeletedInfo(data)" />
    

    【讨论】:

    • 感谢您的帮助 这确实有效,奇怪的是,VS 说有一个错误,但允许编译并且如果在调试中介入,值确实会返回 Parent
    • CS1503 参数 2:无法从“方法组”转换为“事件回调”
    • 那么你必须这样做: ,我已经在我的答案中更新了它。
    • 编译器在 Blazor 中每次都无法正常工作。某些情况是否表明存在一些错误,但如果程序构建,则一切正常。我希望在 .net 6 中他们能解决这个问题。
    • 重新加载了VS,效果很好,谢谢你,救命
    猜你喜欢
    • 2018-09-17
    • 2020-09-22
    • 2020-12-31
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多