В чем разница между CodeFile = "file.ascx.cs" и CodeBehind = "file.ascx.cs" в объявлении пользовательского элемента управления ASP.NET?
Один новее или рекомендуется? Или у них есть конкретное использование?
CodeBehind : необходимо скомпилировать (модель ASP.NET 1.1). Скомпилированный двоичный файл помещается в папку bin на веб-сайте. Перед развертыванием вам необходимо выполнить компиляцию в Visual Studio. Это хорошая модель, если вы не хотите, чтобы исходный код можно было просматривать как обычный текст. Например, при доставке клиенту, которому вы не обязаны предоставлять код.
CodeFile : вы предоставляете исходный файл с решением для развертывания. Среда выполнения ASP.NET 2.0 компилирует код при необходимости. Скомпилированные файлы находятся в папке Microsoft.NET [версия .NET] \ Temporary ASP.NET Files.
Перед запуском файл с выделенным кодом необходимо скомпилировать, но в src нам не нужно компилировать, а затем запускать ... просто сохраните файл.
источник
but in src
- вы имеете в видуbut in the CodeFile
?Я работаю с проектом приложения в Visual Studio Express 2012 для Интернета и использую .NET 4.0. В коде файлов для моих страниц входа и смены пароля я обнаружил ситуацию, когда мне нужны как CodeBehind, так и CodeFile в объявлении.
Если я не добавлю ссылку на файл кода, например
CodeFile=login.aspx.cs
Веб-страница не анализируется, и браузер отображает ошибку парсера. Неважно, компилирую я проект или нет.
Если я не добавлю код позади ссылки, например
CodeBehind=login.aspx.cs
Ссылки на классы безопасности, такие как MembershipUser, терпят неудачу как во время компиляции, так и при попытке использовать intellisense с ошибкой типа «Не удается найти тип или пространство имен MembershipUser». Я добавил ссылку на System.Web.ApplicationServices в соответствии с требованиями платформы .Net 4.0.
Я должен добавить, что эти вызывающие беспокойство файлы работают в приложении на веб-сайте, созданном с помощью инструмента IIS Application. Когда я открываю веб-сайт из Visual Studio, у меня нет проблем с ошибками парсера или ссылочными ошибками. Эта путаница возникает только тогда, когда я открываю приложение как проект в Visual Studio.
источник