.net - Как зарегистрировать сценарий запуска?

У меня ограниченный опыт работы с .net. Мое приложение выдает ошибку this.dateTimeFormat is undefined, которую я отследил до известной ошибки ajax. В опубликованном обходном пути говорится:

«Зарегистрируйте в качестве сценария запуска следующее:»

Sys.CultureInfo.prototype._getAbbrMonthIndex = function(value)
{
if (!this._upperAbbrMonths) {
this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
}
return Array.indexOf(this._upperAbbrMonths, this._toUpper(value));
};

Так как мне это сделать? Могу ли я добавить сценарий в конец моего aspx-файла?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
0
4 953
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Поместите его в заголовок страницы

Ответ принят как подходящий

Вы бы использовали ClientScriptManager.RegisterStartupScript ()

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

if (!ClientScriptManager.IsStartupScriptRegistered("MyScript"){
  ClientScriptManager.RegisterStartupScript(this.GetType(), "MyScript", str, true)
}

Итак, Уэйн, я бы поместил ваш javascript в заголовок? Нужно ли мне заключать "string str = ..." в функцию с именем "myscript"?

mrjrdnthms 24.09.2008 04:00

Нет, вы бы просто добавили этот код в код программной части, скорее всего, в методе загрузки страницы. «MyScript» - это просто имя, поэтому вы можете проверить, был ли уже загружен этот конкретный сценарий. Приведенный выше код написан на C#.

Wayne 24.09.2008 04:43

Я бы безусловно поместил это во внешний файл. Здесь нет ничего, что должно быть встроено.

steve_c 08.01.2009 03:12

У меня была такая же проблема в моем веб-приложении (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 на дочерних страницах.

Другие вопросы по теме