Обновление классического ASP включает Javascript до .net - PullRequest
1 голос
/ 17 марта 2011

Я работаю над проектом ASP.net 3.5, который развился из проекта Classic ASP.У нас есть два старых файла Javascript, которые включены в несколько страниц и никогда не обновлялись должным образом.Javascript содержит теги сервера ASP.Net, и файлы сохраняются с расширением .js.aspx.

Встроенный VB.net относится к общим (статическим) свойствам в классе, а также к переменной сеанса ASP.net.,Рассматриваемый класс не импортируется в файлы Javascript, поэтому Visual Studio не может скомпилировать страницу.Однако при загрузке страницы, содержащей эти файлы, она работает нормально.

Как правильно обновить эти файлы до стандартов .Net?Должны ли мы избегать использования серверных тегов в файлах Javascript или есть .Net способ смешать Javascript и код на стороне сервера в включаемом файле?

Спасибо.

Изменить, чтобы ответить на вопрос:

Файл включен ввнутри тега скрипта.Ошибка компилятора: «Имя« MyClass »не объявлено», где MyClass - это класс, на который ссылаются.

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

Если вам нужны данные на стороне сервера внутри функций JS, я бы предложил другой способ.

Например, предположим, что теперь у вас есть такая вещь:

function Foo() {
  var f = "hello <%=MyClass.LoggedUser%>";
}

Измените это наэто вместо этого:

function Foo() {
  var f = "hello " + _loggedInUser;
}

Затем в событие Page_Load самой страницы добавьте такой код:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "logged_user", "var _loggedInUser = '" + MyClass.LoggedUser + "'; ", true);

Это отправит значение просто отлично, и, на мой взгляд, большеправильно, чем иметь его непосредственно в коде JS.

1 голос
/ 17 марта 2011

Полностью определите свой класс, например, если ваш класс находится в пространстве имен

YourCompany.YourApp

тогда в вашем файле .js.aspx вы делаете YourCompany.YourApp.MyClass

И убедитесь, что вы добавили ссылку на библиотеку DLL, в которой она находится.

Также обратите внимание, что ASP-стиль не работает в ASP.Net.

...