Chu*_*ert 5 asp.net iphone safari uiwebview xamarin.ios
我有一个简单的页面,它的结构如下(伪代码):
<aspx page>
<ascx control>
<asp:dropdownlist id="dd1" autoPostback=true />
<asp:dropdownlist id="dd2" />
</ascx control>
</aspx page>
Run Code Online (Sandbox Code Playgroud)
在任何桌面浏览器中,dd1回发并触发"SelectedIndexChanged"服务器事件.但是在IPhone safari或IPhone webview中,没有回发.我知道这一点,因为没有显示网络活动指示器,我已经将一个调试器连接到捕获所有服务器端事件的站点,并且它从未被命中.有时,大约每2个小时一次,回发的功能可以在iphone上运行,但非常少且间歇性.
Dd1是一个日期下拉列表,它会加载一个时隙下拉列表,该下拉列表取决于日期下拉列表中的所选项目.这个表单在很多地方重复使用,我不想改变基本结构,除非它是最后的努力.
在Safari设置中启用了Javascript.
够简单吧?我正在试图弄清楚如何在webview上调试javascript错误,但我想知道是否有人知道创造这种行为的奇怪之处.
ASP.NET 4.0无法识别IPhones UIWebView的用户代理,因此asp.net作为默认设置提供,该页面的Downlevel版本不包含javascript.iphone webview用户代理是:
Mozilla/5.0(iPhone; U; CPU iPhone OS 4_3_5,如Mac OS X; en-us)AppleWebKit/533.17.9(KHTML,如Gecko)Mobile/8L1
为了避免这种情况发生,我将页面的"ClientTarget"属性更改为"UpLevel",它绕过了asp.net试图找出浏览器功能,只是提供了一个"Uplevel"版本的javascript和所有.
我的Page的Page_Load中的解决方案:
Me.ClientTarget ="uplevel"
要么
this.ClientTarget ="uplevel";