嵌入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
相关产品推荐
相关产品推荐

