CodeFile против CodeBehind

В чем разница между CodeFile= "file.ascx.cs" и CodeBehind= "file.ascx.cs" в объявлении пользовательского элемента управления ASP.NET?

Один новее или рекомендуется? Или они имеют конкретное использование?

3 ответа

Решение

CodeBehind: необходимо скомпилировать (модель ASP.NET 1.1). Скомпилированный бинарный файл находится в папке bin сайта. Вам необходимо выполнить компиляцию в Visual Studio перед развертыванием. Это хорошая модель, когда вы не хотите, чтобы исходный код отображался как обычный текст. Например, при доставке клиенту, которому вы не обязаны предоставлять код.

CodeFile: вы предоставляете исходный файл с решением для развертывания. ASP.NET 2.0 исполняет код при необходимости. Скомпилированные файлы находятся в Microsoft.NET[версия.NET]\Temporary ASP.NET Files.

Я работаю с проектом приложения в Visual Studio Express 2012 для Web и использую.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.

Файл Codebehind нужно скомпилировать перед запуском, но в src нам не нужно компилировать, а затем запускать... просто сохраните файл.

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