UIWebview和IPhone内容不回发(ASP.NET浏览器功能问题)

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错误,但我想知道是否有人知道创造这种行为的奇怪之处.

Chu*_*ert 7

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";