You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌入ASP.NET网页的回调在Android失效,iOS正常的问题解决

问题与解决:Xamarin嵌入ASP.NET页面联系表单Android端加载图标无法消失
  • 开发了一款嵌入ASP.NET网页的Xamarin应用,其中包含联系表单页面:点击「发送」按钮后会显示加载图标,页面将携带含"Yes"或"No"的新头部重新加载,从而展示成功提示。
  • Android和iOS端邮件均可正常发送,但Android端的加载图标始终无法消失,说明页面未携带新头部完成重新加载。
  • 已修改Xamarin和ASP.NET程序但问题未解决,怀疑与Android的ViewModel有关,尚未修复。以下是按钮OnClick事件代码:
if (!String.IsNullOrWhiteSpace(selectedEmail) && !String.IsNullOrWhiteSpace(asunto) && !String.IsNullOrWhiteSpace(body))
{
    // SendEmail 是使用 SmtpClient 发送邮件的函数
    if (await SendEmail(selectedEmail, asunto, body))
    {
        // 函数返回true,因此执行以下两行
        // 实际情况是按钮未被启用,javascript函数也未被调用
        // 但如果连续点击按钮两次,邮件会发送两次,这两行代码最终会生效
        this.btnEnviarEmail.Enabled = true;
        ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "notificarTrue", "NotifySuccess('3000');", true);
    }
    else
    {
        btnEnviarEmail.Enabled = true;
        ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "notificarFalse", "NotifyError('3000');", true);
    }
}
else
{
    btnEnviarEmail.Enabled = true;
    ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "notificarFalse", "NotifyError('3000');", true);
}

已解决!

目前暂不清楚具体原因,但经过多次尝试发现:点击按钮前,先点击其他区域让最后输入的文本框失去焦点,邮件发送后按钮可正常启用并显示确认提示。同时取消了之前注释的两行代码:

base.OnElementPropertyChanged(sender, e);

和

base.OnElementChanged(e);

内容的提问来源于stack exchange,提问作者Roberto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 10:35:27