【发布时间】:2021-08-25 17:46:33
【问题描述】:
我正在为我的 Blazor WebAssembly 创建一个非常简单的 Blazor 组件。该组件是一个模态对话框。当用户点击Cancel按钮时EventCallBack返回false,true为Ok。代码在这里。
<div class="modal fade show" id="myModal"
style="display:block; background-color: rgba(10,10,10,.8);"
aria-modal="true" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">@Title</h4>
<button type="button" class="close"
@onclick="@ModalCancel">×</button>
</div>
<div class="modal-body">
<p>@Text</p>
</div>
<div class="modal-footer">
<button type="button" class="btn"
@onclick="@ModalCancel">Cancel</button>
<button type="button" class="btn btn-primary"
@onclick=@ModalOk>OK</button>
</div>
</div>
</div>
</div>
@code {
[Parameter] public long Id { get; set; }
[Parameter] public string Title { get; set; }
[Parameter] public string Text { get; set; }
[Parameter] public ModalDialogType DialogType { get; set; }
[Parameter] public EventCallback<bool> OnClose { get; set; }
private Task ModalCancel()
{
//return OnClose.InvokeAsync(new ModalDialogResponse()
//{
// Id = Id,
// IsOk = false
//});
return OnClose.InvokeAsync(false);
}
private Task ModalOk()
{
//return OnClose.InvokeAsync(new ModalDialogResponse()
//{
// Id = Id,
// IsOk = true
//});
return OnClose.InvokeAsync(true);
}
}
现在,当主页收到EventCallback 时,Id 是什么?然后,我想为 Id 添加一个参数,回调返回一个自定义响应
public class ModalDialogResponse
{
public long Id { get; set; }
public bool IsOk { get; set; }
}
如果我在组件中声明
[Parameter] public EventCallback<ModalDialogResponse> OnClose { get; set; }
然后在主页中我调用模态对话框
<ModalDialog Title="My title" Text="Here the message"
Id="@ItemId"
OnClose="@OnCloneDialogClose"
DialogType="ModalDialogType.YesNo" />
然后
private async Task OnCloneDialogClose(ModalDialogResponse response)
{
}
Visual Studio 给我一个错误
CS1503 参数 2:无法从“方法组”转换为“事件回调”
我不明白这是怎么回事。
【问题讨论】:
-
忽略它。这是 Intellisense 失败,而不是您的代码有问题。
-
将鼠标悬停在您将其绑定到“@OnCloseDialog”的 Onclose 方法上,智能感知弹出窗口将告诉您它的预期。如果它在任何地方显示
,则您需要按照 niel W 的答案进行清理和重建。我 90% 确定这是您的解决方案。如果它说像 这样的问题,那么问题就在其他地方。 -
看看这个特别的模态4演示。 github.com/BrianLParker/HowToModal
-
添加评论:VS 给了我几条错误消息:像你这样的错误消息,还有一个关于“身份验证”不属于命名空间 XYZ 的消息。但是该站点运行良好,因此我忽略了这些错误。现在,我有大约 6 个错误在 VS 中一直显示在功能齐全的页面上。
-
关闭visual studio然后删除obj和bin文件夹。