Хорошо для начинающих, добавляющих MVC к проекту веб-форм, довольно просто, для получения функций в VS, 2008 для MVC берет немного больше работы (все еще легкий). Сначала Вы хотите быть уверенными, что Вы ссылаетесь на блоки и используете.Net 3.5. Второй можно создать папку контроллеров и папку представлений в текущем проекте веб-форм. Можно также создать простой контроллер с индексным действием. Затем установите/настройте маршруты в global.ascx файле. Вы должны быть установлены оттуда. Проверьте здесь для ссылки.
Однако Вы только сможете создать aspx страницы с кодом behinds (можно удалить их и ввести правильный класс наследования в разметку). На самом деле "преобразовать" Ваш тип проекта так, чтобы Вы получили совершенство MVC и Visual Studio (добавляют новое представление, goto контроллер, и т.д.) собирается взять некоторое проигрывание вокруг с. Мой лучший совет состоит в том, чтобы создать новый проект MVC в VS 2008 и новый проект веб-приложения и сравнить .csproj файлы в простом тексте. Существует значение длинной строки, которое говорит VS шаблон проекта.
Верят мне, это действительно работает. Я сделал это прежде на моих собственных проектах прежней версии. Я не помню, как я нашел тип проекта "ключом" помимо пробной версии/ошибки/устранения. ASP.NET MVC действительно играет по правилам в том же проекте как веб-формы.
ОБНОВЛЕНИЕ: я думаю, что можно измениться на тип проекта MVC, который является все еще веб-приложением при помощи их в PropertyGroup .csproj файла. Сравните тех, которые к тому, что Вы имеете и изменяете тот, которые являются differnt, убедиться копировать/копировать файл.
{B99EC98A-1F09-4245-B00D-5AF985190AA9}
{603c0e0b-db56-11dc-be95-000d561079b0};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
Обновление 2: Вы не влияли бы на свой проект или повлияли бы на него очень. Если Вы - ООН, легкая об этом, делают резервное копирование и игру вокруг. При обнаружении с изменениями, у Вас всегда будет резервное копирование. Я был скептически настроен сначала, но был рад, что спустился по пути MVC.
JL,
Вы должны заключить вызов в .Create в оператор using, чтобы поток FileStream, возвращаемый .Create, был правильно закрыт. IE:
using (File.Create("path")){...}
Метод Create не только создает файл, он открывает его и возвращает объект FileStream, который можно использовать для записи в файл.
Вы должны закрыть файл после себя, иначе он не будет закрыт до того, как сборщик мусора очистит объект FileStream.
Самый простой способ - просто закрыть файл, используя ссылку, которую возвращает метод Create:
File.Create(fileName).Close();
nikmd23 имеет короткий ответ, длинный ответ: FileStream
, возвращаемый File.Create (...)
, не является детерминированным утилизирован, поэтому дескриптор файла не закрывается, когда вы пытаетесь его удалить.
Как выразился nikmd23, упаковка вашего вызова File.Create (...)
с помощью оператора using
обеспечит закрытие и удаление потока:
using (FileStream fs = File.Create(path)) {
// do anything with the stream if need-be...
}
File.Delete(path); //after it's been disposed of.
Блок using (...)
на самом деле просто сахар компилятора для:
FileStream fs = File.Create(path);
try {
// do anything with the stream if need-be...
}
finally {
fs.Dispose();
}
File.Delete(path)
Вы должны использовать ответ nikmd23 почти во всех случаях. Если вы не можете , потому что вам нужно передать FileStream
где-то еще, обязательно вызовите метод FileStream.Close
. Желательно, чтобы у вас был класс, который «владеет» реализацией FileStream
IDisposable
и закрывает поток в его методе Dispose
.
Дополнительные сведения о реализация IDisposable
, см. документацию MSDN . Легче читать и обновлять сообщение Джо Даффи по этой теме.
См. Система. IO.File.Create (String)
Метод описание параметра и возвращаемого значения
Параметры
путь Тип:
System.String
Путь и имя создаваемого файла.Возвращаемое значение
Тип:
System.IO.FileStream
A
FileStream
, который обеспечивает доступ для чтения / записи к файлу, указанному в путь.
Возвращаемое значение FileStream
предназначено для доступа ввода-вывода к созданному файлу. Если вас не интересует запись (или чтение) вновь созданного файла, закройте поток . Это то, что обеспечивает , использующий
блок.
using(FileStream f = File.Create(file_path))
{
// ... do something with file
f.Close();
}
Функция «f.Close ();» строка закрытия файла немедленно. Если не закрыть вручную, утилизация может не закрыть его.