从 Blazor 中的 SweetAlert 返回 false
Returning false from SweetAlert in Blazor
编辑:找到了解决方法,但仍想知道更好的方法
解决方法:
async Task Delete(string userId)
{
var boolval = false;
var modalresponse = await js.InvokeAsync<object>("swal", "Are you sure", "", "error", new { buttons = true });
if(modalresponse == null)
{
boolval = false;
}
else if (modalresponse.GetType().IsValueType)
{
boolval = true;
}
if (boolval)
{
// delete user
}
else
{
// do something else
}
}
原问题:
我一直在尝试在我的项目中使用 swal。
在我的 razor 页面中,我试图显示一个弹出窗口,根据它的响应我会做一些事情
@inject IJSRuntime js
var result = await js.InvokeAsync<bool>("swal", new
{
title = "Some title",
text = "Some text",
icon = "warning",
buttons = true,
});
if(result) {
// do something
}
else {
// do something else
}
单击“确定”可以正常工作,但单击“取消”会损坏应用程序。说 JSON value could not be converted to bool
如果我为 return 类型输入 bool?
而不是 bool
然后单击取消,它会显示 null object cannot be converted to value type
也尝试使用 Convert.ToBoolean
和 Convert.ToInt32
但没有用
如果用户点击取消,我如何捕捉?
因为 InvokeAsync
文档指出 TValue
是 JSON 可序列化的 return 类型,无法序列化为 bool
.
// Type parameters:
// TValue:
// The JSON-serializable return type.
编辑:找到了解决方法,但仍想知道更好的方法
解决方法: async Task Delete(string userId)
{
var boolval = false;
var modalresponse = await js.InvokeAsync<object>("swal", "Are you sure", "", "error", new { buttons = true });
if(modalresponse == null)
{
boolval = false;
}
else if (modalresponse.GetType().IsValueType)
{
boolval = true;
}
if (boolval)
{
// delete user
}
else
{
// do something else
}
}
原问题:
我一直在尝试在我的项目中使用 swal。
在我的 razor 页面中,我试图显示一个弹出窗口,根据它的响应我会做一些事情
@inject IJSRuntime js
var result = await js.InvokeAsync<bool>("swal", new
{
title = "Some title",
text = "Some text",
icon = "warning",
buttons = true,
});
if(result) {
// do something
}
else {
// do something else
}
单击“确定”可以正常工作,但单击“取消”会损坏应用程序。说 JSON value could not be converted to bool
如果我为 return 类型输入 bool?
而不是 bool
然后单击取消,它会显示 null object cannot be converted to value type
也尝试使用 Convert.ToBoolean
和 Convert.ToInt32
但没有用
如果用户点击取消,我如何捕捉?
因为 InvokeAsync
文档指出 TValue
是 JSON 可序列化的 return 类型,无法序列化为 bool
.
// Type parameters: // TValue: // The JSON-serializable return type.