CodeFile против CodeBehind - PullRequest
       33

CodeFile против CodeBehind

132 голосов
/ 16 сентября 2008

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

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

Ответы [ 3 ]

159 голосов
/ 05 июня 2009

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

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

5 голосов
/ 09 июня 2013

Я работаю с проектом приложения в 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.

5 голосов
/ 23 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...