Кажется, что ASP.NET 4.0 не готов обрабатывать события ImageButton, инициированные Internet Explorer 10. Проблема заключается в том, что IE10 отправляет координаты изображения в виде двойных значений (с десятичными знаками), и ASP.NET пытается их проанализировать как целые числа, представляющие следующий тип ошибок:
System.Web.HttpUnhandledException (0x80004005):
Exception of type 'System.Web.HttpUnhandledException' was thrown.
---> System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Web.UI.WebControls.ImageButton.LoadPostData(String postDataKey, NameValueCollection postCollection)
at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at ASP.members_addtocartlogin_twostep_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\932deaba\63ff7eeb\App_Web_MyPage.aspx.28424a96.oraym_un.0.cs:line 0
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Включение в Google, некоторые люди предлагают заставить IE10 работать в режиме совместимости. Однако добавление метатега <meta http-equiv="X-UA-Compatible" content="IE=10" />
ничего не решает; и добавление <?xml version="1.0" encoding="UTF-8">
до <!DOCTYPE>
тоже не работает.
Любые решения? Могу ли я захватить событие click с помощью Javascript и как-то удалить десятичные знаки?
Примечание. Обновление до версии 4.5 и перекомпиляция исправляет ошибку. Не нужно менять версию исполнения, так как она еще 4.0.