gpt4 book ai didi

blazor-webassembly - 如何将 blazorise RichTextEdit 组件绑定(bind)到模型属性

转载 作者:行者123 更新时间:2023-12-01 23:22:13 27 4
gpt4 key购买 nike

我正在尝试在表单中使用 blazorise RichTextEdit 组件。我似乎无法将值初始设置为提供的模型属性的值。

<Form Model="@company">
<Validations @ref="validations" Mode="ValidationMode.Auto" ValidateOnLoad="false" Model="@model">
<Validation>
<Field>
<FieldLabel>Company Website</FieldLabel>
<TextEdit Role="TextRole.Url" @bind-Text="@model.Property1" Placeholder="Enter your website" Size="Size.Large">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</Field>
</Validation>
<Field>
<FieldLabel>About</FieldLabel>
<RichTextEdit @ref="richTextEditRef"
ContentChanged="@OnContentChanged"
Theme="RichTextEditTheme.Snow"
PlaceHolder="Tell us about the company..."
SubmitOnEnter="false"
ToolbarPosition="Placement.Top">
<Editor></Editor>
<Toolbar>
<RichTextEditToolbarGroup>
<RichTextEditToolbarButton Action="RichTextEditAction.Bold" />
<RichTextEditToolbarButton Action="RichTextEditAction.Italic" />
<RichTextEditToolbarSelect Action="RichTextEditAction.Size">
<RichTextEditToolbarSelectItem Value="small" />
<RichTextEditToolbarSelectItem Selected="true" />
<RichTextEditToolbarSelectItem Value="large" />
<RichTextEditToolbarSelectItem Value="huge">Very Big</RichTextEditToolbarSelectItem>
</RichTextEditToolbarSelect>
<RichTextEditToolbarButton Action="RichTextEditAction.List" Value="ordered" />
<RichTextEditToolbarButton Action="RichTextEditAction.List" Value="bullet" />
</RichTextEditToolbarGroup>
<!-- Custom toolbar content -->
<RichTextEditToolbarGroup Float="Float.Right">
</RichTextEditToolbarGroup>
</Toolbar>
</RichTextEdit>
</Field>
</Validations>
<Button Color="Color.Success" Clicked="@Submit">Save</Button>
</Form>

@code {
private Model model { get; set; } = new Model();
private RichTextEdit richTextEditRef;

Validations validations;

protected override async Task OnInitializedAsync()
{
model = await modelService.GetByAccount();
//await richTextEditRef.SetHtmlAsync(model.Property2);
}

public async Task OnContentChanged()
{
model.Property2 = await richTextEditRef.GetHtmlAsync();
}

async void Submit()
{
Console.WriteLine("Form Submitted");
var result = await modelService.Post(model);

}

}

modelService 只返回一条记录,id 成功了。我可以使用 richTextEditRef.GetHtmlAsync() 检索输入值,但是我找不到使用richTextEditRef.SetHtmlAsync(company.About) 方法来初始设置 RichTextEdit 的值。

我曾尝试在调用 modelService 之后调用它,如注释代码中所示,但这是不稳定的,因为它通常在服务返回记录之前执行。我也尝试过重写 OnAfterRenderAsync 方法,但我不确定我是否正确地这样做了。

在这上面浪费了太多时间,请帮忙!?

最佳答案

好吧,经过多次试验和错误后,我让它工作了。希望其他人能从中受益:

在编辑器组件中添加:

<Editor>@((MarkupString)model.Property2)</Editor>

@code添加新属性:

public string newRichTextValue { get; set; }

OnContentChanged()方法设置新属性:

newRichTextValue = await richTextEditRef.GetHtmlAsync();

Submit()方法设置 model.Property2新属性的值(value):

model.Property2 = newRichTextValue;

关于blazor-webassembly - 如何将 blazorise RichTextEdit 组件绑定(bind)到模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67918691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com