У меня была такая же проблема в моем веб-приложении (this.datetimeformat не определено), действительно, это связано с ошибкой в Microsoft Ajax, и эта функция переопределяет вызывающую ошибку функцию в MS Ajax.
Но есть некоторые проблемы с кодом выше. Вот правильная версия.
string str = @"Sys.CultureInfo.prototype._getAbbrMonthIndex = function(value) {
if (!this._upperAbbrMonths) {
this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
}
return Array.indexOf(this._upperAbbrMonths, this._toUpper(value));
};";
ClientScriptManager cs = Page.ClientScript;
if(!cs.IsStartupScriptRegistered("MyScript"))
{
cs.RegisterStartupScript(this.GetType(), "MyScript", str, true);
}
Поместите событие Page_Load вашей веб-страницы в файл кода. Если вы используете мастер-страницы, поместите его на свою дочернюю страницу, а не на мастер-страницу, потому что код на дочерних страницах будет выполняться перед главной страницей, а если он находится в коде позади главной страницы, вы все равно получите ошибка, если вы используете AJAX на дочерних страницах.